stricmp() 用来比较字符串,不区分大小写;区分大小写比较字符串请查看
strcmp()
。stricmp()原型为:
int strcmp(char *s1, char *s2);
【参数说明】s1, s2 为需要比较的两个字符串。
字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。stricmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。
【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。
注意:stricmp()是Windows下特有的,linux下具有相同功能的函数是strcasecmp(),包含在头文件strings.h下。
另外一个不区分大小写比较字符串的函数是
strcmpi()
,strcmpi()是stricmp()的宏定义,实际未提供此函数。
【函数示例】比较两个字符串的大小。
#include<stdio.h>
#include<string.h>
int main(void)
/*定义两个字符串*/
char* s1 = "http://see.xidian.edu.cn/cpp/u/biaozhunku/";
char* s2 = "http://see.xidian.edu.cn/cpp/shujujiegou/";
/*比较字符串(不分大小写)*/
int result = stricmp(s1,s2); // 也可以改成strcmpi()
if(result>0)
printf("Result: s1 > s2");
else if(result<0)
printf("Result: s1 < s2");
else if(result == 0)
printf("Result: s1 = s2");
getchar();/*等待用户输入个字符,然后退出*/
return 0;
运行结果:
Result: s1 > s2