strcmp()函数原型是
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、北安ssl等。为上1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的北安网站制作公司
int strcmp(const char *s1,const char *s2)
如果s1的字符串在机器编码顺序中落后于s2,函数返回值是一个大于0的整数;如果两个字符串相同的话,返回值是0;如果第一个字符串在机器编码顺序中先于第二个字符串,返回值是一个<0的数。
看函数的返回值类型是 int,那么你就可以定义一个int 值来表示,例如
int cmp=strcmp(s1,s2)
cmp0说明s2s1;
cmp=0说明s2=s1;
cmp0说明s2s1;
或者可以直接使用
if(strcmp(str1,str2))
作为判断条件。
你好,这是你对strcmp函数理解错误了。其原型是: extern int strcmp(const char *s1,const char * s2); 其功能是比较字符串s1与字符串s2,在C语言中,返回值有下面的规则得到:当S1S2时,返回值为1 而在C++中,返回值是按照下面的规律得到:当S1S2时,返回值大于0 而对S1与S2的比较是按照ASCII码进行比较的,即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如: "A""A" "computer""compare" 而你输入的是apple与banana,当然是banana大于apple 希望对你有帮助
#include stdio.h
char my_cmp(char s1[],char s2[])
{
int i;
char t;
for(i=0; s1[i]!='\0'||(s2[i]!='\0'); i++)
if((t=s1[i]-s2[i])!=0)
break;
return t;
}
int main()
{
char s[4][30]= {"Hello","Hello","Helld","Hellp"};
int i;
char t;
for(i=1; i4; i++)
{
printf("比较%s和%s的结果是:",s[0],s[i]);
t=my_cmp(s[0],s[i]);
if(t==0)
printf("0\n");
else
printf("%d\n",t);
}
}