# std::strpbrk

From cppreference.com
< cpp‎ | string‎ | byte

Defined in header `<cstring>` |  |
const char* strpbrk( const char* dest, const char* breakset ); |  |
char* strpbrk( char* dest, const char* breakset ); |  |

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.

### 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

### Return value

Pointer to the first character in `dest`, that is also in `breakset`, or null pointer if no such character exists.

### Notes

The name stands for "string pointer break", because it returns a pointer to the first of the separator ("break") characters

### Example

Run this code

    #include <iostream>
    #include <cstring>

    int main()
    {
        const char* str = "hello world, friend of mine!";
        const char* sep = " ,!";

        unsigned int cnt = 0;
        do {
           str = std::strpbrk(str, sep); // find separator
           std::cout << str << '\n';
           if(str) str += std::strspn(str, sep); // skip separator
           ++cnt; // increment word count
        } while(str && *str);

        std::cout << "There are " << cnt << " words\n";
    }

Output:

    world, friend of mine!
    , friend of mine!
     of mine!
     mine!
    !
    There are 5 words

### See also

strcspn | returns the length of the maximum initial segment that consists of only the characters not found in another byte string (function)
strtok | finds the next token in a byte string (function)
strchr | finds the first occurrence of a character (function)
C documentation for strpbrk

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/byte/strpbrk&oldid=87495"