我試圖檢查從stdin讀取的行是否以「login:」開頭,但strcmp似乎不起作用。比較兩個字符串,strcmp的問題
char s1[20], s2[20];
fgets(s1, 20, stdin);
strncpy(s2,s1,6);
strcmp(s2, "login:");
if(strcmp(s2, "login:") == 0)
printf("s2 = \"login:\"\n");
else
printf("s2 != \"login:\"\n");
我不在乎「login:」後面會出現什麼內容,我只是想確保如何給出命令。我究竟做錯了什麼?
'strcmp'用於**完全**匹配。我建議仔細閱讀[C字符串庫](http://en.cppreference.com/w/c/string/byte)以查看是否有另一個函數可用於此任務... –
我正在複製第6個字符(應該是「login:」)到另一個字符串中,該字符串將與字符串「login:」進行比較,因此我要進行完全匹配。 –
哦,這是一個公平點;我沒有注意到這一點。 –