我正在用 C 编写一个小程序,它将从控制台读取输入。然后将其放入一个char数组中。之后我需要将数组分割成单词。我不知道该怎么做。到目前为止,我已将输入放入字符数组中。我需要知道是否有一种方法可以根据空白字符进行标记。或者关于如何处理这个问题的任何其他建议。谢谢。
示例:
输入:这只是一个测试
数组:[t,h,i,s,,i,s,,o,n,l,y,,a,,t,e,s,t,null]
我想要一个字符串数组 [this,is,only,a,test,null]
main() {
char msg[50], ch;
int i = 0;
printf("***Reading words in your input*****\n\n");
printf("Type something terminated by ENTER button\n");
while ((ch = getchar()) != '\n')
msg[i++] = ch;
msg[i] = '\0';
i = 0;
while (msg[i] != '\0')
putchar(msg[i++]);
printf("\n");
}
最佳答案
是的,使用strtok
函数:
char* token = strtok(msg, " ");
while (token != NULL) {
printf("%s", token);
token = strtok(NULL, " ");
}
关于C 编程。读取输入并将其解析为单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407872/