【发布时间】:2016-11-28 20:33:10
【问题描述】:
我正在构建一个程序,它需要以命令的形式从用户那里读取输入,例如“命令 12”,其中命令是特定的单词,需要存储在单独的变量中,之后的数字也需要在其变量中.
我创建了一个变量,其中是需要匹配命令的单词和用于存储的 int 变量。
char rule[5] = {'r', 'u', 'l', 'e', '\0'};
char command[6];
int cmd_num;
然后用scanf读取,再通过strcmp比较。
scanf("%s %d", &command, &cmd_num);
if ( (strcmp(command, rule)) != 0)
{
printf("Error.\n");
return 1;
}
但它并没有像我预期的那样工作。我用谷歌搜索了几个小时,但我无法找到如何正确存储这个字符串和数字。谁能帮我理解字符串是如何存储的?这将帮助我理解为什么 strcmp 不能按我预期的方式工作。
或者有没有更好的方法来检查用户输入是否匹配某个单词?后面的数字对我来说似乎是个问题。我试图玩弄获取函数,但我无法得出结果。提前谢谢你。
【问题讨论】:
标签: c string input scanf strcmp