Difference between revisions of "cpp/string/byte/strtok"
m (Shorten template names. Use {{lc}} where appropriate.) |
m (seealso pbrk/cspn/spn (non-destructive analog)) |
||
Line 63: | Line 63: | ||
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
+ | {{dsc inc | cpp/string/byte/dsc strpbrk}} | ||
+ | {{dsc inc | cpp/string/byte/dsc strcspn}} | ||
+ | {{dsc inc | cpp/string/byte/dsc strspn}} | ||
{{dsc see c | c/string/byte/strtok}} | {{dsc see c | c/string/byte/strtok}} | ||
{{dsc end}} | {{dsc end}} |
Revision as of 18:12, 8 January 2015
Defined in header <cstring>
|
||
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 indelim
.
- If no such character was found, there are no tokens in
str
at all, and the function returns a null pointer. - If such character was found, is it the beginning of the token. The function then searches from that point on for the first character that is contained in
delim
.
- If no such character was found,
str
has only one token, and the future calls tostrtok
will return a null pointer - If such character was found, it is replaced by the null character '\0' and the pointer to the following character is stored in a static location for subsequent invocations.
- If no such character was found,
- The function then returns the pointer to the beginning of the token
- If no such character was found, there are no tokens in
- If str == NULL, the call is treated as a subsequent calls to
strtok
: the function continues from where it left in previous invocation. The behavior is the same as if the previously stored pointer is passed as str.
Contents |
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
Output:
A bird came down the walk
See also
finds the first location of any character from a set of separators (function) | |
returns the length of the maximum initial segment that consists of only the characters not found in another byte string (function) | |
returns the length of the maximum initial segment that consists of only the characters found in another byte string (function) | |
C documentation for strtok
|