我建立一个程序,该程序需要读取来自用户的命令的形式输入,例如后“命令12”,其中命令是特定词和需要被存储在单独的变量,数它也需要在其变量中。检查是否输入相匹配的字用C
我创建的变量,其中是字需要以匹配命令和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不能按我期望的方式工作。
或者有什么更好的方法来检查,如果用户输入匹配某个单词?这个数字似乎对我来说是个问题。我试图玩弄功能,但我无法得出结果。先谢谢你。
我试图使用的scanf(%5秒)的限制,问题是,我有两个命令,我不知道该用户将键入哪一个,我需要认识到他们两个不幸的是,他们是不一样的长度为 – Pernick
那么你的命令缓冲区太小了。将其增加到最大的命令长度。不检查缓冲区可能会导致程序崩溃。 5是最大限制。你不必输入5个字符。 –
我试过了,但是然后strcmp不起作用,难道不是因为字符串不相等吗?可以说我的输入是'乌鸦12',我有const char * raven =“raven”;当我在这两个上使用strcmp时,它不起作用,尽管当我打印它们时,它们会打印相同的字符串。 – Pernick