【发布时间】:2022-01-16 07:31:42
【问题描述】:
我一直在尝试用空格字符分割字符串。字符串的格式为a, b,我需要将其拆分为a 和b。我写的代码如下,但循环总是在打印最后一个字符之前终止。
void tokenize(char *str)
{
int i = 0, k = 0;
char *ch = malloc(1000);
printf("%s\n", str);
while(i < strlen(str))
{
if(str[i] == ' ')
{
k = 0;
printf("%s", ch);
ch = malloc(1000);
i++;
}
else if(str[i] == ',')
i++;
else
{
ch[k++] = str[i++];
}
}
}
输出
q1, q2
q1
从上面的输出可以明显看出,它在打印 q2 之前终止,非常感谢解决此问题的解决方案。
【问题讨论】:
-
你需要在循环之后打印 ch (一个 \n 可能是个好主意)
-
谢谢,但是为什么循环在打印之前就终止了?
-
您在阅读空格时打印,刺痛不是以空格结尾,所以没有打印