strtok, strtok_r, strsep—get next token from a string #include <string.h>
char *strtok(char *source, const char *delimiters)
char *strtok_r(char *source, const char *delimiters,
char **lasts)
char *strsep(char **source_ptr, const char *delimiters)
Description
The strtok function is used to isolate sequential tokens in a
null-terminated string, *source. These tokens are delimited
in the string by at least one of the characters in *delimiters.
The first time that strtok is called, *source should be
specified; subsequent calls, wishing to obtain further tokens from
the same string, should pass a null pointer instead. The separator
string, *delimiters, must be supplied each time and may
change between calls.
The strtok function returns a pointer to the beginning of each
subsequent token in the string, after replacing the separator
character itself with a null character. When no more tokens remain,
a null pointer is returned.
The strtok_r function has the same behavior as strtok, except
a pointer to placeholder *lasts must be supplied by the caller.
The strsep function is similar in behavior to strtok, except
a pointer to the string pointer must be supplied source_ptr and
the function does not skip leading delimiters. When the string starts
with a delimiter, the delimiter is changed to the null character and
the empty string is returned. Like strtok_r and strtok, the
*source_ptr is updated to the next character following the
last delimiter found or NULL if the end of string is reached with
no more delimiters.
Returns
strtok, strtok_r, and strsep all return a pointer to the
next token, or NULL if no more tokens can be found. For
strsep, a token may be the empty string.
Portability
strtok is ANSI C.
strtok_r is POSIX.
strsep is a BSD extension.
strtok, strtok_r, and strsep require no supporting OS subroutines.