'\" t .\" Copyright (c) Bruno Haible .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" References consulted: .\" GNU glibc-2 source code and manual .\" Dinkumware C library reference http://www.dinkumware.com/ .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html .\" ISO/IEC 9899:1999 .\" .TH wcstok 3 2023-07-20 "Linux man-pages 6.05.01" .SH NAME wcstok \- split wide-character string into tokens .SH LIBRARY Standard C library .RI ( libc ", " \-lc ) .SH SYNOPSIS .nf .B #include .PP .BI "wchar_t *wcstok(wchar_t *restrict " wcs \ ", const wchar_t *restrict " delim , .BI " wchar_t **restrict " ptr ); .fi .SH DESCRIPTION The .BR wcstok () function is the wide-character equivalent of the .BR strtok (3) function, with an added argument to make it multithread-safe. It can be used to split a wide-character string .I wcs into tokens, where a token is defined as a substring not containing any wide-characters from .IR delim . .PP The search starts at .IR wcs , if .I wcs is not NULL, or at .IR *ptr , if .I wcs is NULL. First, any delimiter wide-characters are skipped, that is, the pointer is advanced beyond any wide-characters which occur in .IR delim . If the end of the wide-character string is now reached, .BR wcstok () returns NULL, to indicate that no tokens were found, and stores an appropriate value in .IR *ptr , so that subsequent calls to .BR wcstok () will continue to return NULL. Otherwise, the .BR wcstok () function recognizes the beginning of a token and returns a pointer to it, but before doing that, it zero-terminates the token by replacing the next wide-character which occurs in .I delim with a null wide character (L\[aq]\e0\[aq]), and it updates .I *ptr so that subsequent calls will continue searching after the end of recognized token. .SH RETURN VALUE The .BR wcstok () function returns a pointer to the next token, or NULL if no further token was found. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .na .nh .BR wcstok () T} Thread safety MT-Safe .TE .sp 1 .SH STANDARDS C11, POSIX.1-2008. .SH HISTORY POSIX.1-2001, C99. .SH NOTES The original .I wcs wide-character string is destructively modified during the operation. .SH EXAMPLES The following code loops over the tokens contained in a wide-character string. .PP .EX wchar_t *wcs = ...; wchar_t *token; wchar_t *state; for (token = wcstok(wcs, L" \et\en", &state); token != NULL; token = wcstok(NULL, L" \et\en", &state)) { ... } .EE .SH SEE ALSO .BR strtok (3), .BR wcschr (3)