Namensräume
Varianten
Aktionen

strpbrk

Von cppreference.com
< c‎ | string‎ | byte
Definiert in Header <string.h>
char *strpbrk( const char *dest, const char *breakset );
(1)
/*QChar*/ *strpbrk( /*QChar*/ *dest, const char *breakset );
(2) (seit C23)
1 ) Sucht in der nullterminierten Byte-Zeichenkette, auf die dest zeigt, nach einem beliebigen Zeichen aus der nullterminierten Byte-Zeichenkette, auf die breakset zeigt, und gibt einen Zeiger auf dieses Zeichen zurück.
2) Typ-generische Funktion, äquivalent zu (1). Sei T ein nicht-qualifizierter Zeichentyp.
  • Wenn dest vom Typ const T* ist, ist der Rückgabetyp const char*.
  • Andernfalls, wenn dest vom Typ T* ist, ist der Rückgabetyp char*.
  • Andernfalls ist das Verhalten undefiniert.
Wenn eine Makrodefinition einer dieser generischen Funktionen unterdrückt wird, um auf eine tatsächliche Funktion zuzugreifen (z. B. wenn (strpbrk) oder ein Funktionszeiger verwendet wird), wird die tatsächliche Funktionsdeklaration (1) sichtbar.

Das Verhalten ist undefiniert, wenn dest oder breakset kein Zeiger auf eine nullterminierte Byte-Zeichenkette ist.

Inhalt

[bearbeiten] Parameter

dest - Zeiger auf den nullterminierten Byte-String, der analysiert werden soll
breakset - Zeiger auf die nullterminierte Byte-Zeichenkette, die die zu suchenden Zeichen enthält

[bearbeiten] Rückgabewert

Zeiger auf das erste Zeichen in dest, das sich auch in breakset befindet, oder ein Nullzeiger, wenn kein solches Zeichen existiert.

[bearbeiten] Hinweise

Der Name steht für "string pointer break" (Zeichenkettenzeiger-Unterbrechung), da er einen Zeiger auf das erste der Trennzeichen ("break") zurückgibt.

[bearbeiten] Beispiel

#include <stdio.h>
#include <string.h>
 
int main(void)
{
    const char* str = "hello world, friend of mine!";
    const char* sep = " ,!";
 
    unsigned int cnt = 0;
    do
    {
       str = strpbrk(str, sep); // find separator
       if(str) str += strspn(str, sep); // skip separator
       ++cnt; // increment word count
    }
    while(str && *str);
 
    printf("There are %u words\n", cnt);
}

Ausgabe

There are 5 words

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.24.5.4 Die Funktion strpbrk (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.24.5.4 Die Funktion strpbrk (p: TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.24.5.4 Die Funktion strpbrk (p: 368)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.21.5.4 Die Funktion strpbrk (p: 331)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.11.5.4 Die Funktion strpbrk

[bearbeiten] Siehe auch

gibt die Länge des maximalen Anfangssegments zurück, das
nur aus den Zeichen besteht, die in einem anderen Byte-String nicht vorkommen
(Funktion) [bearbeiten]
findet das erste Vorkommen eines Zeichens
(Funktion) [bearbeiten]
findet das nächste Token in einem Byte-String
(Funktion) [bearbeiten]
C++ Dokumentation für strpbrk