最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何正確比較字符串?

如何正確比較字符串?

叮當(dāng)貓咪 2019-05-23 11:06:22
如何正確比較字符串?我試圖讓一個程序讓用戶輸入一個單詞或字符,存儲它,然后打印它直到用戶再次鍵入它,退出程序。我的代碼看起來像這樣:#include <stdio.h>int main(){     char input[40];     char check[40];     int i=0;     printf("Hello!\nPlease enter a word or character:\n");     gets(input);     printf("I will now repeat this until you type it back to me.\n");     while (check != input)     {         printf("%s\n", input);         gets(check);      }     printf("Good bye!");     return 0;}問題是我不斷打印輸入字符串,即使用戶輸入(檢查)與原始(輸入)匹配。我比較錯誤嗎?
查看完整描述

3 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊

您不能(有用)使用!=或比較字符串==,您需要使用strcmp

while (strcmp(check,input) != 0)

這樣做的原因是因為!=并且==只會比較這些字符串的基址。不是字符串本身的內(nèi)容。


查看完整回答
反對 回復(fù) 2019-05-23
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗 獲得超18個贊

好的一些事情:gets不安全,應(yīng)該更換,fgets(input, sizeof(input), stdin)以免你得到緩沖區(qū)溢出。

接下來,要比較字符串,必須使用strcmp,其中返回值為0表示兩個字符串匹配。使用相等運算符(即。!=)比較兩個字符串的地址,而不是它們中的個別字符串char。

并且還要注意,雖然在這個例子中它不會引起問題,也可以fgets將換行符存儲'\n'在緩沖區(qū)中; gets()才不是。如果您將用戶輸入與fgets()字符串文字進(jìn)行比較,例如"abc"它永遠(yuǎn)不會匹配(除非緩沖區(qū)太小,以至于它'\n'不適合它)。

編輯:再次被超級快速的神秘主義者擊敗。


查看完整回答
反對 回復(fù) 2019-05-23
  • 3 回答
  • 0 關(guān)注
  • 1079 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號