1樓:
strcmp的實現是這樣的,對兩個字串,先比較第一個字元,如果不相等,返回差值。如果相等,繼續比較下一個字元,直到有不相等或遇到『\0』時結束。
現在你把陣列a和b傳入,因為前三個字元都相等,會越界繼續比較的。
如果你想比較兩個字串,字串是要用『\0』結束的。
如果你只想比較前n個,可以使用strncmp,strncmp(a,b,3);
2樓:匿名使用者
你這是在比較字元陣列了吧 不是在比較字串了char a = "abc";
char b = "abc";應該這麼定義你之前定義的是
char a=; //char a[3] 是可以的 a[2] = 'c'
char b=;// char a[4]也是可以的 a[3] = '\0'
不一樣的
3樓:風8清9揚
因為你沒有加字串的結尾標誌'\0',所以才會出錯。
char a=;
char b=
4樓:寂寞而莫我知也
字串你後面還必須要加char a=;
char b=
c語言題:輸入兩個字串,不使用函式strcmp比較大小。急!十萬火急!!!!
5樓:匿名使用者
void main()
else if(s1[i] }if (s1[i]!='\0') if (s2[i]!='\0') printf("s%d is biggest\n",flag);} c語言問題:不用strcmp函式比較兩個字串的大小 6樓:問明 #include #define n 80 void cmp(char a[n],char b[n])int i=0; char *p1=a,*p2=b; while(*(p1+i)==*(p2+i)&&*(p1+i)!='\0') i++; if(*(p1+i)>*(p2+i)) printf("%s>%s\n",p1,p2); else if(*(p1+i)<*(p2+i))printf("%s<%s\n",p1,p2); else printf("%s=%s\n",p1,p2); int main() char a[n]=,b[n]=; char c[n]=,d[n]=; char e[n]=,f[n]=; cmp(a,b); cmp(c,d); cmp(e,f); return 0; 執行效果: 7樓:匿名使用者 #include int main()} 字串比較用函式 strcmp。char a 80 b 80 printf please enter string a n gets a printf please enter string b n gets b if strcmp a,b 0 printf 0 else if strcmp a,b ... include int str cmp char str1,char str2 if str1 0 str2 0 return 1 if str1 0 str2 0 return 1 if str1 0 str2 0 return 0 int main else if a i 0 return 1 ... include include include include int main void include using namespace std void main else cout unequal 用strcmp不就直接解決了?還可以用string物件直接 比較。include using n...比較兩個字串的大小(用陣列a,b,如果a大於b,輸出1如果a小於b,輸出 1如果a等於b,輸出0 )
用C語言編寫比較兩個字串大小的程式 不能用string函式
求c 程式!怎樣採用字元指標,比較兩個字串