James Thornton logo
James Thornton
Google
Web jamesthornton.com
Internet Business Consultant
Home Blog Bio Projects Contact
JamesThornton.com -> Archive -> Linux -> Man -> One Page

Name

strtok, strtok_r - extract tokens from strings

Synopsis


#include <string.h>
char *strtok(char *s, const char *delim);
char *strtok_r(char *s, const char *delim, char **ptrptr);

Description

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 found.

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 call.

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.

Bugs

Never use these functions. If you do, note that:

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.

Return Value

The strtok() function returns a pointer to the next token, or NULL if there are no more tokens.

Conforming to

strtok()
SVID 3, POSIX, BSD 4.3, ISO 9899
strtok_r()
POSIX.1c

See Also

index(3) , memchr(3) , rindex(3) , strchr(3) , strpbrk(3) , strsep(3) , strspn(3) , strstr(3)


Follow espeed on Twitter