【发布时间】:2014-12-23 05:54:51
【问题描述】:
我在拆分字符串时遇到问题。下面的代码有效,但前提是字符串之间是 ' '(空格)。但即使有任何 whitespace 字符,我也需要拆分字符串。 strtok() 甚至是必要的吗?
char input[1024];
char *string[3];
int i=0;
fgets(input,1024,stdin)!='\0') //get input
{
string[0]=strtok(input," "); //parce first string
while(string[i]!=NULL) //parce others
{
printf("string [%d]=%s\n",i,string[i]);
i++;
string[i]=strtok(NULL," ");
}
【问题讨论】:
-
strtok的参数可以包含任意数量的分隔符。 -
我。例如,
strtok(input, " \t\r\n\f\v");和strtok(NULL, " \t\r\n\f\v");。 -
您的
fgets()语句看起来不正确(也缺少;)。如果它是循环的一部分,则无法与\0比较失败。 -
这就是我想知道的,非常感谢。