📅  最后修改于: 2023-12-03 15:00:03.155000             🧑  作者: Mango
在 C++ 中,可以使用许多方法来比较字符串。在本文中,我们将介绍几种使用 C++ 比较字符串的方法。
strcmp 函数可以用来比较两个字符串。该函数比较字符序列 str1 和 str2,并根据其比较结果返回整数值。如果返回值为 0,则表示 str1 和 str2 相等。
#include <iostream>
#include <cstring>
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = std::strcmp(str1, str2);
if (result == 0) {
std::cout << "str1 and str2 are equal" << std::endl;
} else if (result < 0) {
std::cout << "str1 is less than str2" << std::endl;
} else {
std::cout << "str2 is less than str1" << std::endl;
}
return 0;
}
在 C++ 中,可以使用 string 类型来表示字符串。string 类型重载了运算符以支持字符串的比较。可以使用比较运算符 ==、!=、<、>、<= 和 >= 来比较两个 string 类型字符串的大小。
#include <iostream>
#include <string>
int main() {
std::string str1 = "hello";
std::string str2 = "world";
if (str1 == str2) {
std::cout << "str1 and str2 are equal" << std::endl;
} else if (str1 < str2) {
std::cout << "str1 is less than str2" << std::endl;
} else {
std::cout << "str2 is less than str1" << std::endl;
}
return 0;
}
strcoll 函数是 strcmp 函数的改进版。它使用本地化规则来比较字符串,可以处理不同语言中的字符排序问题。
#include <iostream>
#include <cstring>
#include <locale.h>
int main() {
char str1[] = "Ä";
char str2[] = "A";
setlocale(LC_ALL, "");
int result = std::strcoll(str1, str2);
if (result == 0) {
std::cout << "str1 and str2 are equal" << std::endl;
} else if (result < 0) {
std::cout << "str1 is less than str2" << std::endl;
} else {
std::cout << "str2 is less than str1" << std::endl;
}
return 0;
}
在 C++ 中,比较字符串有多种方法。可以使用 strcmp 函数比较 C 风格字符串,使用 string 类型的比较运算符比较 string 类型字符串,或者使用 strcoll 函数处理多语言字符排序问题。无论哪种方法,都值得学习和掌握。