Synopsis

char*strtok(char*s1,constchar*s2);

Description

strtok A sequence of calls to strtok breaks the string pointed to by s1
into a sequence of tokens, each of which is delimited by a character from the
string pointed to by s2. 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 s2 may be different from call to call.

The first call in the sequence searches the string pointed to by s1
for the first character that is not contained in the current separator string
pointed to by s2. If no such character is found, then there are no tokens
in the string pointed to by s1 and strtok returns a null pointer.
If such a character is found, it is the start of the first token.

strtok 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 s1, 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. strtok
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

strtok maintains static state and is therefore not reentrant and
not thread safe. See strtok_r for a thread-safe and reentrant
variant.