在线文档教程
C++
字符串 | Strings

std::strtok

std::strtok

Defined in header
char* strtok( char* str, const char* delim

Finds the next token in a null-terminated byte string pointed to by str. The separator characters are identified by null-terminated byte string pointed to by delim.

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

  • If str != NULL, the call is treated as the first call to strtok for this particular string. The function searches for the first character which is not contained in delim.

Parameters

str-pointer to the null-terminated byte string to tokenize
delim-pointer to the null-terminated byte string identifying delimiters

Return value

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

Notes

This function is destructive: it writes the '\0' characters in the elements of the string str. In particular, a string literal cannot be used as the first argument of strtok.

Each call to this function modifies a static variable: is not thread safe.

Unlike most other tokenizers, the delimiters in strtok can be different for each subsequent token, and can even depend on the contents of the previous tokens.

Example

#include <cstring> #include <iostream> int main() { char input[100] = "A bird came down the walk"; char *token = std::strtok(input, " " while (token != NULL) { std::cout << token << '\n'; token = std::strtok(NULL, " " } }

Output:

A bird came down the walk

See also

strpbrkfinds the first location of any character from a set of separators (function)
strcspnreturns the length of the maximum initial segment that consists of only the characters not found in another byte string (function)
strspnreturns the length of the maximum initial segment that consists of only the characters found in another byte string (function)

| C documentation for strtok |

© cppreference.com

Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.

http://en.cppreference.com/w/cpp/string/byte/strtok