A `token' is a nonempty string of characters not occurring in the string
delim, followed by \0 or by a character occurring in delim.
The strtok() function can be used to parse the string s into
tokens. The first call to strtok() should have s as its first
argument. Subsequent calls should have the first argument set to NULL. Each
call returns a pointer to the next token, or NULL when no more tokens are
If a token ends with a delimiter, this delimiting character is overwritten with
a \0 and a pointer to the next character is saved for the next call to
strtok(). The delimiter string delim may be different for each
The strtok_r() function is a reentrant version of the strtok()
function, which instead of using its own static buffer, requires a pointer to
a user allocated char*. This pointer, the ptrptr parameter, must be the
same while parsing the same string.
These functions modify their first argument.
These functions cannot be used on constant strings.
The identity of the delimiting character is lost.
The strtok() function uses a static buffer while parsing, so it's not
thread safe. Use strtok_r() if this matters to you.