字符串比较函数strcmp,strcmp比较的规则
大家好,感谢邀请,今天来为大家分享一下字符串比较函数strcmp的问题,以及和strcmp比较的规则的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
strcmp()函数怎么用
字符串比较函数,一般形式为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
字符串比较函数strcp比较的是字符串的什么
你是问strcmp函数么?
strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:
strcmp(字符串1,字符串2);
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值;
那么,字符中的大小是如何比较的呢?来看一个例子。
实际上,字符串的比较是比较字符串中各对字符的ASCII码。
首先比较两个串的第一个字符,若不相等,则停止比较并得出大于或小于的结果;
如果相等就接着比较第二个字符然后第三个字符等等。如果两上字符串前面的字符一直相等,像"disk"和"disks"那样,前四个字符都一样,然后比较第五个字符,前一个字符串"disk"只剩下结束符'/0',后一个字符串"disks"剩下's','/0'的ASCII码小于's'的ASCII码,所以得出了结果。因此无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果。
strcmp()函数的用法是怎样的
strcmp函数用法:
strcmp()用来比较字符串(区分大小写),其原型为:int strcmp(const char*s1, const char*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比较的规则的答案你都知道了吗?欢迎再次光临本站哦!