我建立一個程序,該程序需要讀取來自用戶的命令的形式輸入,例如後「命令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