c语言字符串不区分大小写比较
时间: 2024-10-19 16:03:12 浏览: 37
在C语言中,标准库函数如strcmp()用于比较两个字符串是否相等,并默认区分大小写。如果你想让字符串比较不区分大小写,可以自定义一种处理方式,例如转换所有字符到小写或大写后再进行比较。
一种常见做法是在比较前先将字符串转为统一的格式,比如全部转换为小写:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int my_strcmp(const char* str1, const char* str2) {
while (*str1 && *str2) {
if (tolower(*str1) != tolower(*str2)) {
return *str1 - *str2;
}
str1++;
str2++;
}
// 如果其中一个字符串结束而另一个未结束,则认为后者更长
return !*str1 ? 1 : !*str2 ? -1 : 0;
}
int main() {
char str1[] = "Hello";
char str2[] = "hello";
int result = my_strcmp(str1, str2);
if (result == 0) {
printf("The strings are equal.\n");
} else {
printf("The strings are not equal.\n");
}
return 0;
}
```
阅读全文