第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何正確比較字符串?

如何正確比較字符串?

叮當貓咪 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貢獻1797條經驗 獲得超4個贊

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

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

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


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

TA貢獻1853條經驗 獲得超18個贊

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

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

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

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


查看完整回答
反對 回復 2019-05-23
  • 3 回答
  • 0 關注
  • 1064 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號