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()} 按照函式定義的方式呼叫,傳進兩個字元陣列的指標即可。函式原型 extern int strcmp const char s1,const char s2 引數 s1 s2都是字元陣列的指標 規則當s1當s1 s2時,返回值 0 當s1 s2時,返回正數 即 兩個字串自左向右逐個字元相比 按ascii... 一個公認的實現方法如下 注意兩個形參應該是const char int my strcmp const char s1,const char s2 uc1 unsignedchar s1 uc2 unsignedchar s2 return uc1 uc2 1 uc1 uc2 int strcmp ... 字串比較用函式 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 ...如何利用strcmp函式比較兩個字串是否相同
編寫函式,實現對兩個字串進行比較,函式原型可為 int strcmp char s1,char s
比較兩個字串的大小(用陣列a,b,如果a大於b,輸出1如果a小於b,輸出 1如果a等於b,輸出0 )