C语言中strcmp是什么意思?有什么功能和作用?

C语言中strcmp是什么意思?有什么功能和作用?,第1张

strcmp是比较两个字符的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.

比较两个字符串的算法谨谨是:逐个比较两个串中祥慧基对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关碧橡系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。

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

比较规则:

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

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

返回值:

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

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

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

扩展资料:

规则

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

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

当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

#include <stdio.h>

int strcmp(char *s1, char *s2)

{

while((*s1++ == *s2++)&&*s1)

return (*s1 - *s2)

}

void main()

{

char a[10], b[10]

gets(a)

gets(b)

printf("%d\n", strcmp(a, b))

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12422411.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存