c - 如何设置将用户输入拆分为多个部分并拆分那些较小部分的 C 函数?

标签 c string input struct

我正在尝试开发一个接受一行用户输入的 C 函数,例如这一行:

1X 1X 3Y 1Z 1Z 1Z 1Z 2X 2X

(编辑:这只是用户输入内容的任意示例。在实际程序中,他们可以输入 1 到 48 个数字字符对之间的任意位置。)

想法是用户将插入整行,并将其分成 9 个部分(每个数字和字符对是一个部分)。然后,数字和字符对也将相互拆分(我在考虑这部分,它们都属于包含 numValue 和 charValue 的结构)。

我可以使用什么来拆分用户的输入?我对 C 比较陌生。

最佳答案

可用于拆分用户输入字符串的函数是 strtok()来自 #include <string.h>图书馆。这是您可以用来将输入分成九个部分的示例。

#include <stdio.h>
#include <string.h>

main (){
    char word[] ="1X 1X 3Y 1Z 1Z 1Z 1Z 2X 2X";
    int i = 0;
    char *p = strtok(word, " ");
    char *array[9];

    while (p != NULL){
        array[i++] = p;
        p = strtok(NULL, " ");
    }
    return 0;
}

您可以再次执行此操作以进一步拆分它。解释一下strtok我要用这段代码解释吗:

strtok(word, " "); . word是要修改的字符串的内容," " with 是字符串的分隔符。

关于c - 如何设置将用户输入拆分为多个部分并拆分那些较小部分的 C 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747630/

相关文章:

c++ - Const unsigned char* 到 char*

c++ - 反转字符串中的每个单词(应该处理空格)

java - 字符串替换方法不替换字符

python - 根据用户输入创建循环,然后将结果保存为 Python 中的 MUD

css - 使用单选输入使 div 通过 CSS 可见

c++ - 嵌套并行 for 循环 : "Parallel outer for loop" in "parallel inner for loop as a function"

C中#include的成本

c++ - 如何使用Wireshark帮助创建协议(protocol)模糊测试框架?

我们可以在 C 中使用具有不同枚举标记的多个常量吗

java - foreach 中的值输入字段到 foreach 外的输入字段