# wcspbrk

From cppreference.com
< c‎ | string‎ | wide

Defined in header `<wchar.h>` |  |
wchar_t *wcspbrk( const wchar_t *dest, const wchar_t *str ); | (1) | (since C95)
/*QWchar_t*/ *wcspbrk( /*QWchar_t*/ *dest, const wchar_t *str ); | (2) | (since C23)

1) Finds the first character in wide string pointed to by `dest`, that is also in wide string pointed to by `str`.
2) Type-generic function equivalent to (1). Let `T` be an unqualified wide character object type.

  - If `dest` is of type const T*, the return type is const wchar_t*.
  - Otherwise, if `dest` is of type T*, the return type is wchar_t*.
  - Otherwise, the behavior is undefined.

If a macro definition of each of these generic functions is suppressed to access an actual function (e.g. if (wcspbrk) or a function pointer is used), the actual function declaration (1) becomes visible.

### 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 <stdio.h>
    #include <wchar.h>

    int main(void)
    {
        const wchar_t* str = L"Hello world, friend of mine!";
        const wchar_t* sep = L" ,!";

        unsigned int cnt = 0;
        do {
           str = wcspbrk(str, sep); // find separator
           if (str) str += wcsspn(str, sep); // skip separator
           ++cnt; // increment word count
        } while (str && *str);

        wprintf(L"There are %u words.\n", cnt);
    }

Output:

    There are 5 words.

### References

- C11 standard (ISO/IEC 9899:2011):

  - 7.29.4.5.3 The wcspbrk function (p: 436)

- C99 standard (ISO/IEC 9899:1999):

  - 7.24.4.5.3 The wcspbrk function (p: 382)

### See also

wcscspn (C95) | returns the length of the maximum initial segment that consists of only the wide chars not found in another wide string (function)
wcschr (C95) | finds the first occurrence of a wide character in a wide string (function)
strpbrk | finds the first location of any character in one string, in another string (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/string/wide/wcspbrk&oldid=146095"