Нужна помощь в функции strtok
#include<stdio.h>
#include<string.h>
int main()
{
char string[100], *ptr = NULL;
memset(string, 0, 100);
strcpy(string, "abc#efg#xyz");
ptr = strtok(string, "#");
fprintf(stderr, "ptr = [%s]\n", ptr);
ptr = strtok(NULL, "#");
fprintf(stderr, "ptr = [%s]\n", ptr);
ptr = strtok(NULL, "#");
fprintf(stderr, "ptr = [%s]\n", ptr);
return 0;
}
Выход
ptr = [abc]
ptr = [efg]
ptr = [xyz]
Это нормально, но если первый токен равен нулю, то первый вызов strtok возвращает второй токен. Насколько я понимаю, он вернет ноль при первом вызове, поскольку токен отсутствует.
#include<stdio.h>
#include<string.h>
int main()
{
char string[100], *ptr = NULL;
memset(string, 0, 100);
strcpy(string, "#efg#xyz");
ptr = strtok(string, "#");
fprintf(stderr, "ptr = [%s]\n", ptr);
ptr = strtok(NULL, "#");
fprintf(stderr, "ptr = [%s]\n", ptr);
ptr = strtok(NULL, "#");
fprintf(stderr, "ptr = [%s]\n", ptr);
return 0;
}***
Выход
ptr = [efg]
ptr = [xyz]
ptr = [(null)]
strtok()
исходный код - person Grijesh Chauhan   schedule 16.08.2013