Updated: April 19, 2023

Break a wide-character string into tokens


#include <wchar.h>

wchar_t * wcstok( wchar_t * ws1,
                  const wchar_t * ws2,
                  wchar_t ** ptr );


NULL, or the wide-character string that you want to break into tokens; see below.
A set of the wide characters that separate the tokens.
The address of a pointer to a wchar_t object, which the function can use to store information necessary for it to continue scanning the same string.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


The function wcstok() breaks the wide-character string pointed to by ws1 into a sequence of tokens, each of which is delimited by a wide character from the string pointed to by ws2.

In the first call to wcstok(), ws1 must point to a null-terminated string, ws2 must point to a null-terminated string of separator wide characters, and ptr is ignored. The wcstok() function returns a pointer to the first wide character of the first token and updates ptr.

In subsequent calls, to continue scanning through the string ws1 and return successive tokens, specify a NULL pointer for ws1 and leave ptr unchanged after each call. The separator string ws2 may differ from call to call. When no tokens remain in ws1, a NULL pointer is returned.


A pointer to the token found, or NULL if no token was found.


ANSI, POSIX 1003.1

Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes