1樓:匿名使用者
一個公認的實現方法如下: 注意兩個形參應該是const char *int my_strcmp(const char *s1, const char *s2)
uc1 =(*(unsignedchar*) s1);
uc2 =(*(unsignedchar*) s2);
return((uc1 < uc2)?-1:(uc1 > uc2));}
2樓:匿名使用者
int strcmp(const char *s1,const char *s2)
3樓:匿名使用者
/*am < bm
bm > am
am = am
*/#include
int strcmp(char s, char t)if(s[i] == '\0' && t[i]) return -1;
else if(t[i] == '\0' && s[i]) return 1;
return 0;
}int main()
4樓:匿名使用者
while(s1!=0 && s2!=0)if(s1 == 0 && s2 ==0) return 0;
else if(s1>0) return 1;
else return -1;
用一個函式實現兩個字串的比較,即自己寫一個strcmp函式,函式原型為 :int strcmp
5樓:
//void strcmp(char *s1,char *s2)int strcmp(const char *s1,const char *s2)
else if(s1==null)
else if(s2==null)
//一直找到一個
for(i=0;!s;i++)
//if((s1+i)!=(s2+i))
//s=(s1+i)-(s2+i);
//else
//s=0;
return s;
//printf("%d\n",s);}
6樓:匿名使用者
修改如下:
#include
void main()
int strcmp(char *s1,char *s2)
c語言編寫函式實現兩個字串比較(其功能與標準函式strcmp一樣)函式原型int mystrcpy(char*s1,char*s2)
7樓:
以下**就可解決此問題:
//#include "stdafx.h"//if the vc++6.0, with this line.
#include "stdio.h"
int mystrcmp(const char *s1,const char *s2)
int main(void){//測試一下char a="12378",b="1233467890",f;
if((f=mystrcmp(a,b))>0)printf("a>b\n");
else if(f<0)
printf("a
8樓:匿名使用者
int mystrcmp(char *s1, char *s2)
return *s1-*s2;}
用strcmp函式比較兩個字串,結果不正確啊
strcmp的實現是這樣的,對兩個字串,先比較第一個字元,如果不相等,返回差值。如果相等,繼續比較下一個字元,直到有不相等或遇到 0 時結束。現在你把陣列a和b傳入,因為前三個字元都相等,會越界繼續比較的。如果你想比較兩個字串,字串是要用 0 結束的。如果你只想比較前n個,可以使用strncmp,s...
如何利用strcmp函式比較兩個字串是否相同
按照函式定義的方式呼叫,傳進兩個字元陣列的指標即可。函式原型 extern int strcmp const char s1,const char s2 引數 s1 s2都是字元陣列的指標 規則當s1當s1 s2時,返回值 0 當s1 s2時,返回正數 即 兩個字串自左向右逐個字元相比 按ascii...
用C語言編寫比較兩個字串大小的程式 不能用string函式
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 ...