Namespaces
Variants

strpbrk

From cppreference.net
< c ‎ | string ‎ | byte
Definiert im Header <string.h>
char * strpbrk ( const char * dest, const char * breakset ) ;
(1)
/*QChar*/ * strpbrk ( /*QChar*/ * dest, const char * breakset ) ;
(2) (seit C23)
1 ) Durchsucht die nullterminierte 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) Typgenerische Funktionsäquivalent zu (1) . Sei T ein unqualifizierter Zeichenobjekttyp.
  • Falls dest vom Typ const T * ist, ist der Rückgabetyp const char * .
  • Andernfalls, falls dest vom Typ T * ist, ist der Rückgabetyp char * .
  • Andernfalls ist das Verhalten undefiniert.
Falls eine Makrodefinition jeder 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, falls entweder dest oder breakset kein Zeiger auf eine nullterminierte Byte-Zeichenkette ist.

Inhaltsverzeichnis

Parameter

dest - Zeiger auf die zu analysierende nullterminierte Byte-Zeichenkette
breakset - Zeiger auf die nullterminierte Byte-Zeichenkette, die die zu durchsuchenden Zeichen enthält

Rückgabewert

Zeiger auf das erste Zeichen in dest , das auch in breakset enthalten ist, oder ein Nullzeiger, falls kein solches Zeichen existiert.

Hinweise

Der Name steht für "String Pointer Break", da er einen Zeiger auf das erste der Trennzeichen ("Break") zurückgibt.

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

Referenzen

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

Siehe auch

gibt die Länge des maximalen Anfangssegments zurück, das nur aus
Zeichen besteht, die nicht in einer anderen Byte-Zeichenkette gefunden werden
(Funktion)
findet das erste Vorkommen eines Zeichens
(Funktion)
findet das nächste Token in einer Byte-Zeichenkette
(Funktion)
C++ documentation für strpbrk