温馨提示×

C++中comparenocase的用法是什么

c++
小亿
81
2023-11-04 09:44:29
栏目: 编程语言

在C++中,comparenocase是一个用于比较字符串的函数,它可以忽略大小写。该函数通常与string类的成员函数compare一起使用。

comparenocase函数在C++标准库中没有直接提供,但可以通过自定义函数来实现。以下是一个示例实现:

#include <string>
#include <algorithm>

bool compareNoCase(const std::string& str1, const std::string& str2) {
    if (str1.length() != str2.length()) {
        return false;
    }
    
    return std::equal(str1.begin(), str1.end(), str2.begin(), [](char c1, char c2) {
        return std::tolower(c1) == std::tolower(c2);
    });
}

上述代码中,compareNoCase函数接受两个字符串参数str1str2,并比较它们是否相等(忽略大小写)。该函数首先比较两个字符串的长度,如果长度不相等,说明字符串不相等,直接返回false。然后使用std::equal算法来比较两个字符串的每个字符,使用lambda函数将字符转换为小写,并进行比较。

使用示例:

std::string str1 = "Hello";
std::string str2 = "hello";

if (compareNoCase(str1, str2)) {
    std::cout << "Strings are equal (ignore case)" << std::endl;
} else {
    std::cout << "Strings are not equal" << std::endl;
}

上述示例将输出"Strings are equal (ignore case)",因为compareNoCase函数忽略了字符串的大小写,所以判断它们相等。

0