Break a string into tokens (reentrant)


#include <string.h>

char* strtok_r( char* s, 
                const char* sep, 
                char** lasts );


NULL, or the string that you want to break into tokens; see below.
A set of the characters that separate the tokens.
The address of a pointer to a character, which the function can use to store information necessary for it to continue scanning the same string.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


The function strtok_r() breaks the string s into a sequence of tokens, each of which is delimited by a character from the string pointed to by sep.

In the first call to strtok_r(), s must point to a null-terminated string, sep points to a null-terminated string of separator characters, and lasts is ignored. The strtok_r() function returns a pointer to the first character of the first token, writes a NULL character into s immediately following the returned token, and updates lasts.

In subsequent calls, s must be a NULL pointer and lasts must be unchanged from the previous call so that subsequent calls will move through the string s, returning successive tokens until no tokens remain. The separator string sep may be different from call to call. When no tokens remain in s, a NULL pointer is returned.


A pointer to the token found, or NULL if no token was found.


POSIX 1003.1 TSF

Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes

See also:

memchr(), strchr(), strcspn(), strpbrk(), strrchr(), strset(), strspn(), strstr(), strtok(), wcschr(), wcscspn(), wcspbrk(), wcsrchr(), wcsspn(), wcsstr(), wcstok()