如何在C++中自定義類似于strcasecmp的功能

c++
小樊
82
2024-08-27 13:12:02

在 C++ 中,你可以使用 std::string庫(kù)來(lái)實(shí)現(xiàn)一個(gè)類似于strcasecmp` 的功能

#include<iostream>
#include<string>
#include<algorithm>

int strcasecmp(const std::string &str1, const std::string &str2) {
    std::string s1 = str1;
    std::string s2 = str2;
    
    // 將字符串轉(zhuǎn)換為小寫
    std::transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
    std::transform(s2.begin(), s2.end(), s2.begin(), ::tolower);

    return s1.compare(s2);
}

int main() {
    std::string str1 = "Hello World";
    std::string str2 = "hello world";

    int result = strcasecmp(str1, str2);

    if (result == 0) {
        std::cout << "Strings are equal"<< std::endl;
    } else {
        std::cout << "Strings are not equal"<< std::endl;
    }

    return 0;
}

這個(gè)程序首先將兩個(gè)輸入字符串轉(zhuǎn)換為小寫,然后使用 std::string::compare() 方法進(jìn)行比較。如果返回值為 0,則表示字符串相等,否則表示它們不相等。

0