在 C 语言 中我们需要比较两个 字符串 ,可以使用 strcmp 函数,但使用 strcmp 函数比较两个字符串时,是区分大小写的,如果我们要不区分大小写比较,则可以使用 strcasecmp 函数。
strcasecmp 函数与 strcmp 函数的唯一区别就是 strcmp 函数比较字符串区分大小写,而 strcasecmp 函数比较字符串不区分大小写。
同样,使用 strcasecmp 函数比较字符串时,不是比较字符串的长度,而是比较字符串的 字符 大小。
int strcasecmp(const char *str1, const char *str2);
参数 | 描述 |
---|---|
str1 | 要进行比较的第一个字符串。 |
str2 | 要进行比较的第二个字符串。 |
若参数 s1 和 s2 字符串相同则返回 0。s1 大于 s2 则返回大于 0 的值,s1 若小于 s2 则返回小于 0 的值。
使用 strcasecmp 函数,需要引入 string.h 头文件。
使用 strcasecmp() 函数,实现字符串的忽略大小写比较
#include <stdio.h>
#include <string.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
char str1[10] = "haiCoder";
char str2[10] = "HaiCoder";
int retCaseCmp = strcasecmp(str1, str2);
printf("retCaseCmp = %d\n", retCaseCmp);
return 0;
}
程序运行后,控制台输出如下:
我们首先定义了一个 字符数组 str1,并赋值,接着,我们再次定义了一个字符数组 str2 并赋值。接着,我们使用了 strcasecmp 函数比较了两个字符数组。
我们可以看到,两个字符串的内容完全相同,但大小写不同,此时返回了 0,因为,strcasecmp 比较字符串是不区分大小写的。现在,我们修改字符串,使他们不相等,修改如下:
#include <stdio.h>
#include <string.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
char str1[10] = "aabc";
char str2[10] = "aaabbbb";
int retCaseCmp = strcasecmp(str1, str2);
printf("retCaseCmp = %d\n", retCaseCmp);
return 0;
}
程序运行后,控制台输出如下:
这次,我们修改了字符串 str1 和 str2,我们看到,字符串 str1 的长度小于字符串 str2,但字符串 str1 和字符串 str2 的前两个字符相等,但 str1 的第三个字符大于 str2 的第三个字符。
因此,最终返回了 1,即字符串 str1 大于字符串 str2,所以,使用 strcasecmp 比较字符串时,不是比较字符串的长度,而是挨个比较字符串中的字符。
strcasecmp 函数与 strcmp 函数的唯一区别就是 strcmp 函数比较字符串区分大小写,而 strcasecmp 函数比较字符串不区分大小写。
同样,使用 strcasecmp 函数比较字符串时,不是比较字符串的长度,而是比较字符串的字符大小。