strtok_r 的简单例子。
注意, while 内部的 strtok_r 的第一个参数是 NULL.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char **argv) {
int error_code = 0;
if (argc <= 2) {
printf("usage: %s <string> <delim>\n", argv[0]);
return 1;
}
char *token_string = strdup(argv[1]);
if (NULL == token_string) {
error_code = -1;
goto fail_strdup;
}
char *delim = argv[2];
char *save_ptr = NULL;
char *token = strtok_r(token_string, delim, &save_ptr);
while(token) {
printf("`%s`\n", token);
token = strtok_r(NULL, delim, &save_ptr);
}
free(token_string);
return 0;
fail_strdup:
return error_code;
}
[root@localhost test]# ./a.out 1,23,45:66 :,
`1`
`23`
`45`
`66`