C语言字符串忽略大小写比较strcasecmp函数

C语言忽略大小写比较strcasecmp函数教程

C 语言 中我们需要比较两个 字符串 ,可以使用 strcmp 函数,但使用 strcmp 函数比较两个字符串时,是区分大小写的,如果我们要不区分大小写比较,则可以使用 strcasecmp 函数。

strcasecmp 函数与 strcmp 函数的唯一区别就是 strcmp 函数比较字符串区分大小写,而 strcasecmp 函数比较字符串不区分大小写。

同样,使用 strcasecmp 函数比较字符串时,不是比较字符串的长度,而是比较字符串的 字符 大小。

strcasecmp函数详解

语法

int strcasecmp(const char *str1, const char *str2);

参数

参数 描述
str1 要进行比较的第一个字符串。
str2 要进行比较的第二个字符串。

返回值

若参数 s1 和 s2 字符串相同则返回 0。s1 大于 s2 则返回大于 0 的值,s1 若小于 s2 则返回小于 0 的值。

技术细节

使用 strcasecmp 函数,需要引入 string.h 头文件。

案例

C语言字符串忽略大小写比较

使用 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; }

程序运行后,控制台输出如下:

15_C语言字符串比较strcasecmp函数.png

我们首先定义了一个 字符数组 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; }

程序运行后,控制台输出如下:

16_C语言字符串比较strcasecmp函数.png

这次,我们修改了字符串 str1 和 str2,我们看到,字符串 str1 的长度小于字符串 str2,但字符串 str1 和字符串 str2 的前两个字符相等,但 str1 的第三个字符大于 str2 的第三个字符。

因此,最终返回了 1,即字符串 str1 大于字符串 str2,所以,使用 strcasecmp 比较字符串时,不是比较字符串的长度,而是挨个比较字符串中的字符。

C语言字符串忽略大小写比较strcasecmp函数总结

strcasecmp 函数与 strcmp 函数的唯一区别就是 strcmp 函数比较字符串区分大小写,而 strcasecmp 函数比较字符串不区分大小写。

同样,使用 strcasecmp 函数比较字符串时,不是比较字符串的长度,而是比较字符串的字符大小。