首页技术strcmp函数比较字符串怎么比较大小?比较字符串大小的函数

strcmp函数比较字符串怎么比较大小?比较字符串大小的函数

编程之家2026-06-101160次浏览

大家好,今天给各位分享strcmp函数比较字符串怎么比较大小的一些知识,其中也会对比较字符串大小的函数进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

strcmp函数比较字符串怎么比较大小?比较字符串大小的函数

strcmp()函数怎么用

字符串比较函数,一般形式为strcmp(字符串1,字符串2)。

比较规则:

对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。

如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”,还要特别注意:小写字母比大写字母“大”。

返回值:

(1)字符串1=字符串2,返回0

strcmp函数比较字符串怎么比较大小?比较字符串大小的函数

(2)字符串1>字符串2,返回一个正整数

(3)字符串1<字符串2,返回一个负整数。

扩展资料:

规则

当s1<s2时,返回为负数;

当s1==s2时,返回值= 0;

strcmp函数比较字符串怎么比较大小?比较字符串大小的函数

当s1>s2时,返回正数。

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

"A"<"B""a">"A""computer">"compare"

特别注意:strcmp(const char*s1,const char* s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。

ANSI标准规定,返回值为正数,负数,0。而确切数值是依赖不同的C实现的。

Return Value

Returns an integral value indicating the relationship between the strings:

return value<0 the first character that does not match has a lower value inptr1than inptr2

return value=0 the contents of both strings are equal

return value>0 the first character that does not match has a greater value inptr1than inptr2

当两个字符串不相等时,C标准没有规定返回值会是1或-1,只规定了正数和负数。有些实现会返回1或-1,但将返回值与1或-1做比较的人,都是不合格的程序员。

有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。

参考资料:百度百科-strcmp

...实现两个字符串的比较,即自己写一个strcmp函数,

错的地方多了!自己要细心点检查~

1)、 f1=strcmp(&s1,&s2);这地方传值是地址,s1和s2就是地址为什么还要给取地址呢;

2)、printf("%d",f1);最好要在后面加换行符号'\n';

3)、 for(i=0;*p1!='\0'||*p2!='\0';i++)指针比较不是这样的,只需要直接判断是否为空就行了,如:*p1!= NULL;而且在这也不是用||(或)这个符号,应该使用&&;

4)、for(i=0;*p1!='\0'||*p2!='\0';i++) for循环中间的条件,是i的范围,不是你那样写的!

5)、子函数中逻辑不分明,有点混乱!代码不够简明!

6)、函数头不要用关键字strcmp这样的,会右冲突;

下面是我对你的代码进行的简单修改:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int strcmp_a(char*p1, char*p2)

{

int i= 0, j= 0, f, sum;

if(p1!= NULL&& p2!= NULL){

while(1){

if(p1[i]== p2[i]){

i++; j++;

}else

break;

}

}

if(strlen(p1)>= strlen(p2))

sum= strlen(p1);

else

sum= strlen(p2);

if(i< sum)

f= p1[i]- p2[i];

else

f= 0;

return f;

}

void main()

{

char s1[100],s2[100];

int f1;

printf("请输入一串字符\n");

gets(s1);

printf("请输入另一串字符\n");

gets(s2);

f1=strcmp_a(s1,s2);

printf("%d\n",f1);

}

strcmp函数是怎么用的

strcmp函数用于两个字符串的比较,具体用法如下:

1、strcmp函数接受两个字符串类型的参数传入,根据比较结果返回一个int类型的值。

2、若返回结果的值小于 0,则表示在ASCII码上, str1字符串小于 str2字符串。

3、若返回结果返回值大于0,则代表 str2字符串小于 str1字符串。

4、只有当返回值为0时,两个字符串才是相同的。

扩展资料:

该函数只能用于比较字符串,不能比较数字等其他形式的参数,否则会报错。

根据ANSI的标准,函数的返回值为正数,负数,0。不同的C返回的数值会有所不同。当两个字符串不相等时,C的标准没有规定返回值会是 1或-1,只规定了正数和负数。

通常情况下,会将两个字符的 ASCII码之差作为比较结果由函数值返回。因此使用函数进行逻辑判断时应特别注意。

参考资料:

strcmp-百度百科

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

免费无审核的ai绘画(ai绘图怎么弄(无限制无审核免费的ai绘画软件分享))公会声望?公会声望怎么冲