請(qǐng)問(wèn)為什么這個(gè)程序輸出都為1,與輸入s1和s2無(wú)關(guān)
#include<iostream>using namespace std;int Strcmp(char s1[],char s2[]){if(s1==s2)return 0;else if (s1>s2)return 1;else if(s1<s2)return -1;}int main(){char s1[100],s2[100];printf("請(qǐng)輸入數(shù)組s1:");gets(s1);printf("請(qǐng)輸入數(shù)組s2:");gets(s2);printf("-----字符串比較的結(jié)果------");printf("%d",Strcmp(s1,s2));return 0;}
數(shù)組比較,,要比較它的內(nèi)容的而不是直接比較它的變量(這個(gè)是地址)
你s1與s2直接比較,,因?yàn)閟1比s2先定義,s1>s2永遠(yuǎn)成立的,,與你輸入的內(nèi)容沒有任何關(guān)系的
如果你是
char s2[100],s1[100];
那結(jié)果永遠(yuǎn)是-1
所以你程序完全不對(duì)
以下參考(方法有多種的,,而實(shí)際庫(kù)函數(shù)用的是指針,,更簡(jiǎn)單、效率更高)
int Strcmp(char s1[],char s2[]){int s=0;for(int i=0; s1[i] && s2[i]; i++) {if (s1[i]>s2[i]) {s=1;break;} else {if (s1[i]<s2[i])s=-1;break;}}return s;}
相關(guān)推薦
- 我這女朋友要我改這改那,她喜歡那樣的人直接就去找那樣的就好了還干嘛找我這種還要改變的人,,
- 今年NBA猛龍已經(jīng)3比1勇士了,,有沒有大神預(yù)測(cè)下,,猛龍能否拿下總冠軍?
- 為什么筆記本電腦連接wifi玩游戲延遲極高,?
- 網(wǎng)易我的世界
- 員工差旅費(fèi)的高鐵票,、飛機(jī)票可以抵扣進(jìn)項(xiàng)稅額嗎,?
- 硬筆和毛筆的握法為什么會(huì)不一樣?
- 請(qǐng)問(wèn)彩砂石和聚丙烯有什么區(qū)別,,放游樂(lè)園里面用的
- 怎么辦,,快來(lái)幫幫我~~~~~
- 寬帶提速具體要怎么提,,要另外加錢嗎,?
- 網(wǎng)易究竟是為了什么收購(gòu)我的世界
便查問(wèn)答是一款實(shí)用的網(wǎng)絡(luò)熱門知識(shí)問(wèn)答平臺(tái),專注于分享你不知道的知識(shí),、經(jīng)驗(yàn)及生活問(wèn)題,,在這里所有人都能找到答案歡迎網(wǎng)友參與討論。