有一段時間沒有在C編程,所以我肯定在這裏錯過了一些東西,但我無法弄清楚它是什麼。測試字符串相等問題
我有兩個字符串,如下所示:
char toMatch[] = "--exit--";
char entry[1024];
通過這一方案,我有一個while循環接受用戶輸入以修改整個程序字符串entry
。我想退出這個while循環時,entry
等於toMatch
。
我認爲這很容易處理strcmp
函數,但它不能正常工作。本來我有這個:
while(strcmp(entry, toMatch) != 0) {
// accept user input here to modify entry
}
但是,這並沒有奏效。所以我加了一行代碼再次接受用戶輸入之前清除的entry
內容:
while(strcmp(entry, toMatch) != 0) {
memset(entry, 0, sizeof(entry));
// accept user input here to modify entry
}
這也不起作用。我需要有entry
這麼長時間,因爲用戶的輸入可以是任何比這更小的長度。我不知道爲什麼strcmp()
不工作,所以我想我錯過了一些應該是顯而易見的東西。
向我們展示要求輸入字符串的代碼片段 – Abend
您知道== 0是相等的,並且<0 or > 0是不等式的,對嗎?除此之外,你是否打印出了兩個字符串的值 - 最好在字符之前和之後加上一個字符,比如''',以使空格可見 - 以確認你真的在比較你認爲的你比較? – keshlam
用戶輸入可能以換行符結尾,嘗試將設置匹配爲「--exit - \ n」 –