在C语言中比较两个字符串是否相等的方法
C语言strcmp()函数:比较字符串(区分大小写)
头文件:#include<string.h>
strcmp()用来比较字符串(区分大小写),其原型为:
intstrcmp(constchar*s1,constchar*s2);
【参数】s1,s2为需要比较的两个字符串。
字符串大小的比较是以ASCII码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0则再继续比较下个字符,若差值不为0则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。
【返回值】若参数s1和s2字符串相同则返回0。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0的值。
注意:strcmp()以二进制的方式进行比较,不会考虑多字节或宽字节字符;如果考虑到本地化的需求,请使用strcoll()函数。
【实例】对4组字符串进行比较。
#include<string.h> main(){ char*a="aBcDeF"; char*b="AbCdEf"; char*c="aacdef"; char*d="aBcDeF"; printf("strcmp(a,b):%d\n",strcmp(a,b)); printf("strcmp(a,c):%d\n",strcmp(a,c)); printf("strcmp(a,d):%d\n",strcmp(a,d)); }
输出结果:
strcmp(a,b):32 strcmp(a,c):-31 strcmp(a,d):0
C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)
头文件:#include<string.h>
定义函数:
intstrcasecmp(constchar*s1,constchar*s2);
函数说明:strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
返回值:若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0的值,s1长度若小于s2长度则返回小于0的值。
范例
#include<string.h> main(){ char*a="aBcDeF"; char*b="AbCdEf"; if(!strcasecmp(a,b)) printf("%s=%s\n",a,b); }
执行结果:
aBcDeF=AbCdEf