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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何正確比較字符串?

如何正確比較字符串?

叮當(dāng)貓咪 2019-05-23 11:06:22
如何正確比較字符串?我試圖讓一個(gè)程序讓用戶輸入一個(gè)單詞或字符,存儲(chǔ)它,然后打印它直到用戶再次鍵入它,退出程序。我的代碼看起來(lái)像這樣:#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;}問(wèn)題是我不斷打印輸入字符串,即使用戶輸入(檢查)與原始(輸入)匹配。我比較錯(cuò)誤嗎?
查看完整描述

3 回答

?
繁星coding

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

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

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

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


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

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

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

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

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

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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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