char *strpbrk( const char *dest, const char *breakset );
(1)/*QChar*/ *strpbrk( /*QChar*/ *dest, const char *breakset );
(2) (since C23)1 ) Scans the null-terminated byte string pointed to by dest for any character from the null-terminated byte string pointed to by breakset, and returns a pointer to that character.
2)Type-generic function equivalent to
(1). Let
T
be an unqualified character object type.
dest
is of type const T*, the return type is const char*.dest
is of type T*, the return type is char*.If a macro definition of each of these generic functions is suppressed to access an actual function (e.g. if
(strpbrk)or a function pointer is used), the actual function declaration
(1)becomes visible.
The behavior is undefined if either dest or breakset is not a pointer to a null-terminated byte string.
[edit] Parameters dest - pointer to the null-terminated byte string to be analyzed breakset - pointer to the null-terminated byte string that contains the characters to search for [edit] Return valuePointer to the first character in dest, that is also in breakset, or null pointer if no such character exists.
[edit] NotesThe name stands for "string pointer break", because it returns a pointer to the first of the separator ("break") characters.
[edit] Example#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); }
Output:
[edit] ReferencesRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4