📌  相关文章
📜  c++ 比较字符串忽略大小写 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:55.625000             🧑  作者: Mango

C++比较字符串忽略大小写

在C++中,比较两个字符串时可以使用运算符"=="或者函数strcmp来完成。但是这些方法都是区分大小写的,也就是说大小写不同的字符串会被判定为不相等。如果我们想要在不区分大小写的情况下比较字符串,该怎么做呢?

不用担心,C++标准库提供了一个方便的函数来比较字符串大小写不敏感 - strcasecmp。这个函数不仅在Linux和MacOS平台下可用,在Windows平台上也有对应的函数,就是_stricmp。以下是它们的函数原型:

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

这两个函数都是忽略大小写比较两个字符串,如果两个字符串相等,则返回0;如果第一个字符串小于第二个字符串,则返回一个负数;如果第一个字符串大于第二个字符串,则返回一个正数。

示例:

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    char str1[] = "Hello, World!";
    char str2[] = "hello, world!";
    if (strcasecmp(str1, str2) == 0) {
        cout << "两个字符串相等" << endl;
    } else {
        cout << "两个字符串不相等" << endl;
    }
    return 0;
}

输出结果为:

两个字符串相等

可以看到,通过strcasecmp函数,我们实现了大小写不敏感的字符串比较。

另外,如果你需要在项目中经常使用这个函数,可以编写封装函数来方便地调用:

#include <cstring>

int compareIgnoreCase(const char* str1, const char* str2) {
    return strcasecmp(str1, str2);
}

这样我们就可以像使用strcmp函数一样使用compareIgnoreCase函数进行大小写不敏感的字符串比较了。

在C++中,比较字符串大小写不敏感很简单,只要用strcasecmp函数或者其他平台下对应的函数就可以了。