溫馨提示×

C++中comparenocase的用法是什么

c++
小億
121
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女