Purpose:
Breaks up a string into tokens. The safer strtok_s function is also available.
Syntax:
char * strtok(char * restrict string1, const char * restrict string2);
Declared in:
<string.h>
Description:
A sequence of calls to the strtok function breaks the string pointed to by string1 into a sequence of tokens, each of which is delimited by a character from the string pointed to by string2. The first call in the sequence has a non-null first argument; subsequent calls in the sequence have a null first argument. The separator string pointed to by string2 may be different from call to call.
The first call in the sequence searches the string pointed to by string1 for the first character that is not contained in the current separator string pointed to by string2. If no such character is found, then there are no tokens in the string pointed to by string1 and the strtok function returns a null pointer. If such a character is found, it is the start of the first token.
The strtok function then searches from there for a character that is contained in the current separator string. If no such character is found, the current token extends to the end of the string pointed to by string1, and subsequent searches for a token will return a null pointer. If such a character is found, it is overwritten by a null character, which terminates the current token. The strtok function saves a pointer to the following character, from which the next search for a token will start.
Each subsequent call, with a null pointer as the value of the first argument, starts searching from the saved pointer and behaves as described above.
Note! The strtok function uses an internal static object to remember the search position. Therefore, you cannot search more than one string at a time. However, you can use strtok simultaneously from multiple threads.
Returns:
A pointer to the first character of a token, or a null pointer if there is no token.
See also:
The wcstok function.