Defined in header <cwchar> | ||
|---|---|---|
wchar_t* wcstok( wchar_t* str, const wchar_t* delim, wchar_t ** ptr); |
Finds the next token in a null-terminated wide string pointed to by str. The separator characters are identified by null-terminated wide string pointed to by delim.
str != nullptr, the call is treated as the first call to std::wcstok for this particular wide string. The function searches for the first wide character which is not contained in delim. str at all, and the function returns a null pointer. delim. str has only one token, and future calls to std::wcstok will return a null pointer. L'\0' and the parser state (typically a pointer to the following wide character) is stored in the user-provided location *ptr. str == nullptr, the call is treated as a subsequent calls to std::wcstok: the function continues from where it left in previous invocation with the same *ptr. The behavior is the same as if the pointer to the wide character that follows the last detected token is passed as str. | str | - | pointer to the null-terminated wide string to tokenize |
| delim | - | pointer to the null-terminated wide string identifying delimiters |
| ptr | - | pointer to an object of type wchar_t*, which is used by wcstok to store its internal state |
Pointer to the beginning of the next token or null pointer if there are no more tokens.
This function is destructive: it writes the L'\0' characters in the elements of the string str. In particular, a wide string literal cannot be used as the first argument of std::wcstok.
Unlike std::strtok, this function does not update static storage: it stores the parser state in the user-provided location.
Unlike most other tokenizers, the delimiters in std::wcstok can be different for each subsequent token, and can even depend on the contents of the previous tokens.
#include <cwchar>
#include <iostream>
int main()
{
wchar_t input[100] = L"A bird came down the walk";
wchar_t* buffer;
wchar_t* token = std::wcstok(input, L" ", &buffer);
while (token)
{
std::wcout << token << '\n';
token = std::wcstok(nullptr, L" ", &buffer);
}
}Output:
A bird came down the walk
| finds the next token in a byte string (function) |
|
C documentation for wcstok |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/wide/wcstok