std::strtok
std::strtok
Defined in header | | |
---|---|---|
char* strtok( char* str, const char* delim | | |
Finds the next token in a null-terminated byte str
ing pointed to by str
. The separator characters are identified by null-terminated byte str
ing 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 tostrtok
for this particular string. The function searches for the first character which isnot
contained indelim
.
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 destr
uctive: it writes the '\0'
characters in the elements of the str
ing str
. In particular, a str
ing 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
strpbrk | finds the first location of any character from a set of separators (function) |
---|---|
strcspn | returns the length of the maximum initial segment that consists of only the characters not found in another byte string (function) |
strspn | returns 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.