

#include <string.h> char *strtok(char *s1, const char *s2);
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 tokens are created by a sequence of calls to strtok. In the
first call in the sequence, s1 points to the string to be broken
down. In subsequent calls in the sequence, s1 is NULL. The
string pointed to by s2 may be different from call to call.
If s1 is not NULL (that is, the call is the first call in a
sequence), then strtok searches the string pointed to by s1 for
the first character that is not contained in the string pointed to by
s2. If such a character is found, then it is the start of the
first token. If no such character is found, strtok returns NULL.
Otherwise, the character that was found becomes the start of the first token.
After a token has been started, strtok searches for the first character
contained in the string pointed to by s2. If such a character is
found, it is replaced by strtok with a null character, thereby
terminating the token. If no such character is found, the token extends to the
null character terminating the string pointed to by s1. In either case,
strtok returns the start of the token.
Subsequent calls to strtok behave as described in the previous paragraph,
starting at the character following the null character terminating the previous
token. However, if the previous token extended to the end of the string pointed
to by s1, strtok simply returns NULL.
strtok returns a pointer to the start of a token, or NULL if
there is no token.
strtok is kept in an extern
variable that is local to the calling load module. Therefore, in a
multiload module program, a sequence of calls to strtok for a
given string must be made from the same load module.
strtok breaks out words separated by blanks or commas:
#include <string.h>
#include <stdio.h>
#include <stddef.h>
main()
{
char test[] = "first,second,third,fourth";
char* token;
token = strtok(test, ", ");
while(token != NULL){
puts(token);
/* Continue scan from where it left off. */
token = strtok(NULL, ", ");
}
}
strchr, strcspn, strspn
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.