Я могу только предположить, что вы делаете что-то не так, хотя немного сложно точно сказать, что именно (вы должны, как правило, публиковать свой код, когда спрашиваете об особенностях). Кажется, что примеры программ, вроде следующих, работают нормально:
#include <stdio.h>
#include <string.h>
int main (void) {
char *s;
char str[] =
"This is a string,"
" with both spaces and commas,"
" for testing.";
printf ("[%s]\n", str);
s = strtok (str, ",");
while (s != NULL) {
printf (" [%s]\n", s);
s = strtok (NULL, ",");
}
return 0;
}
Это выводит:
[This is a string, with both spaces and commas, for testing.]
[This is a string]
[ with both spaces and commas]
[ for testing.]
Единственная возможность, которая сразу приходит на ум, - это если вы используете " ,"
вместо ","
. В этом случае вы получите:
[This is a string, with both spaces and commas, for testing.]
[This]
[is]
[a]
[string]
[with]
[both]
[spaces]
[and]
[commas]
[for]
[testing.]