std::wcspbrk(3)

NAME
std::wcspbrk - std::wcspbrk

Synopsis
   Defined in header <cwchar>
   const wchar_t* wcspbrk( const wchar_t* dest, const wchar_t* str );
   wchar_t* wcspbrk( wchar_t* dest, const wchar_t* str );
   Finds the first character in wide string pointed to by dest, that is also in wide
   string pointed to by str.

Parameters
   dest - pointer to the null-terminated wide string to be analyzed
   src - pointer to the null-terminated wide string that contains the characters to
          search for

Return value
   Pointer to the first character in dest, that is also in str, or a null pointer if no
   such character exists.

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

Example
// Run this code
 #include <iostream>
 #include <cwchar>
 #include <iomanip>
 int main()
 {
     const wchar_t* str = L"Hello world, friend of mine!";
     const wchar_t* sep = L" ,!";
     unsigned int cnt = 0;
     do {
        str = std::wcspbrk(str, sep); // find separator
        std::wcout << std::quoted(str) << L'\n';
        if (str) str += std::wcsspn(str, sep); // skip separator
        ++cnt; // increment word count
     } while (str && *str);
     std::wcout << L"There are " << cnt << L" words\n";
 }

Output:
 " world, friend of mine!"
 ", friend of mine!"
 " of mine!"
 " mine!"
 "!"
 There are 5 words

See also
           returns the length of the maximum initial segment that consists
   wcscspn of only the wide not found in another wide string
           (function)
   wcschr finds the first occurrence of a wide character in a wide string
           (function)
   strpbrk finds the first location of any character from a set of separators
           (function)