std::wcstok - cppreference.com (original) (raw)

| | | | | ------------------------------------------------------------------------------ | | | | 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.

This function is designed to be called multiples times to obtain successive tokens from the same string.

[edit] Parameters

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

[edit] Return value

Pointer to the beginning of the next token or null pointer if there are no more tokens.

[edit] Note

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.

[edit] Example

#include #include   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

[edit] See also