strcmp函数的功能(cmp函数的作用)
各位老铁们好,相信很多人对strcmp函数的功能都不是特别的了解,因此呢,今天就来为大家分享下关于strcmp函数的功能以及cmp函数的作用的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
strcmp函数的作用是什么
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。
基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
规则
当s1<s2时,返回为负数。
当s1=s2时,返回值= 0。
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" 2."A"<"AB" 3."Apple"<"Banana" 4."A"<"a" 5."compare"<"computer"
特别注意:strcmp(const char*s1,const char* s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0。而确切数值是依赖不同的C实现的。
1、当两个字符串不相等时,C标准没有规定返回值会是1或-1,只规定了正数和负数。
2、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
strcmp函数是怎样用的
strcmp函数用法:
strcmp()用来比较字符串(区分大小写),其原型为:intstrcmp(constchar*s1,constchar*s2);s1,s2为需要比较的两个字符串。
字符串大小的比较是以ASCII
码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0
则再继续比较下个字符,若差值不为0则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。
举例:
#include<string.h>
main(){
char*a="aBcDeF";
char*b="AbCdEf";
char*c="aacdef";
char*d="aBcDeF";
printf("strcmp(a,b):%d
",strcmp(a,b));
printf("strcmp(a,c):%d
",strcmp(a,c));
printf("strcmp(a,d):%d
",strcmp(a,d));
}
输出结果:
strcmp(a,b):32
strcmp(a,c):-31
strcmp(a,d):0
扩展资料:
strcmp使用规则:
一、当两个字符串不相等时,C标准没有规定返回值会是1或-1,只规定了正数和负数。有些实现会返回1或-1,但将返回值与1或-1做比较的人,都是不合格的程序。
二、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
参考资料来源:百度百科—strcmp
strcmp()函数的用法是什么
strcmp函数用于两个字符串的比较,具体用法如下:
1、strcmp函数接受两个字符串类型的参数传入,根据比较结果返回一个int类型的值。
2、若返回结果的值小于 0,则表示在ASCII码上, str1字符串小于 str2字符串。
3、若返回结果返回值大于0,则代表 str2字符串小于 str1字符串。
4、只有当返回值为0时,两个字符串才是相同的。
扩展资料:
该函数只能用于比较字符串,不能比较数字等其他形式的参数,否则会报错。
根据ANSI的标准,函数的返回值为正数,负数,0。不同的C返回的数值会有所不同。当两个字符串不相等时,C的标准没有规定返回值会是 1或-1,只规定了正数和负数。
通常情况下,会将两个字符的 ASCII码之差作为比较结果由函数值返回。因此使用函数进行逻辑判断时应特别注意。
参考资料:
strcmp-百度百科
OK,关于strcmp函数的功能和cmp函数的作用的内容到此结束了,希望对大家有所帮助。