//----------------------------------------------------
//AUTHOR: lanyang123456
//DATE: 2014-11-09
//---------------------------------------------------
#include <stdio.h>
#include <string.h>
int main()
{
//char sentence[] = "This is a sentence with 7 tokens";
char sentence[] = "first,second.three four,five.";
printf("The string to be tokenized is:%s\n", sentence);
printf("\nThe tokens are:\n");
char *tokenPtr = strtok(sentence, " ,.");
while(tokenPtr != NULL) {
printf("%s\n", tokenPtr);
tokenPtr = strtok(NULL," ,.");
}
printf("After strtok, sentence = %s\n", sentence);
return 0;
}
$ gcc -o str7 str7.c
$ ./str7
The string to be tokenized is:first,second.three four,five.
The tokens are:
first
second
three
four
five
After strtok, sentence = first
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(int argc, char *argv[])
{
char *str1, *str2, *token, *subtoken;
char *saveptr1, *saveptr2;
int j;
if (argc != 4) {
fprintf(stderr, "Usage: %s string delim subdelim\n",
argv[0]);
exit(EXIT_FAILURE);
}
for (j = 1, str1 = argv[1]; ; j++, str1 = NULL) {
token = strtok_r(str1, argv[2], &saveptr1);
if (token == NULL)
break;
printf("%d: %s\n", j, token);
for (str2 = token; ; str2 = NULL) {
subtoken = strtok_r(str2, argv[3], &saveptr2);
if (subtoken == NULL)
break;
printf(" --> %s\n", subtoken);
}
}
exit(EXIT_SUCCESS);
}
$ ./a.out 'a/bbb///cc;xxx:yyy:' ':;' '/'
1: a/bbb///cc
--> a
--> bbb
--> cc
2: xxx
--> xxx
3: yyy
--> yyy
参考man page