C 编程。读取输入并将其解析为单词

标签 c arrays char

我正在用 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/

相关文章:

c - 如何使用指向 C 中结构数组的指针为结构分配内存?

c++ - make for ( rowIdx = 1...) 使用 cuda 线程工作

c - C 中的 XOR 类型场景输出不正确

c - AVR-C : USB connection can be detected successfully, 不是 USB 断开连接

c++ - 创建一个函数来转换数组元素的类型并返回数组的地址

arrays - JOLT数组转换: add key in all objects in list

c - C 中的游程解码

javascript - 验证以分号分隔的多个电子邮件,并且所有电子邮件都必须与特定域匹配

java - 将 CharArray 传递给方法

c - 如何从char函数返回字符串