使用strtok()来标记整数之间的字符串(可能是多个单词),所有这些都用空格分隔

时间:2014-02-25 16:28:37

标签: c string strtok

下面的最后一行格式完全随机。该程序的第一部分将实验名称输入*实验[20],同时将每个实验的数据输入数据[10] [20]。在读取"*** END ***"的输入重定向中的某一行之后,数据输入终止。以下行是我们的选择。他们这样做:1。显示所有数据。 2.计算特定实验的平均值(因此在文件中跟随2的实验名称.3。计算所有实验的总平均值.4。结束程序。一切都需要通过文件重定向输入

主要问题:如何标记由两个单词组成的字符串,您可以在下面看到两行?

好的,我们有文件最后一行的stdin文件重定向输入:

1 2 Control Group 3 4

有4种可能的选择:1,2,3,4
2总是后跟实验名称,因为它计算特定实验的平均值。

我们通过这样做来标记通过fgets()获得的行:
token = strtok(str," ");

然后通过这样继续其他整数:
token = strtok(NULL," ");

数字的每个标记都会扫描成int var,如下所示:
sscanf (token, "%d", &var);

当var等于2时,switch语句会创建一个新标记,期望跟随一个String。最初我写了这样的代码:
printf("What experiment would you like to use?\n"); token = strtok (NULL," "); sscanf (token, "%s", &str);

然后我会使用str在循环中将strcmp与我的不同实验名称进行比较。但是我只用1个字的实验名称进行了测试。现在我意识到问题可以写在我问题的开头列出。

这有一个简单的解决方案吗?

感谢。

0 个答案:

没有答案