使用std::String的==运算符可直接比较字符串,简洁安全;2. compare()成员函数适用于需判断大小关系的场景,返回0表示相等;3. C风格字符串应使用strcmp()函数比较,需包含<cstring>并确保指针非空;4. 忽略大小写比较可通过transform转为统一大小写或使用POSIX系统的strcasecmp()函数实现。
在c++中,比较两个字符串是否相等有多种方法,具体使用哪种方式取决于你使用的字符串类型(如std::string
、C风格字符串char*
)以及性能或安全性的要求。以下是常见的字符串比较方法总结。
1. 使用 std::string 的 == 运算符
如果你使用的是std::string
类型,最简单直接的方式是使用==
运算符进行比较。
#include <string> #include <iostream> <p>int main() { std::string str1 = "hello"; std::string str2 = "hello";</p><pre class='brush:php;toolbar:false;'>if (str1 == str2) { std::cout << "字符串相等" << std::endl; } else { std::cout << "字符串不相等" << std::endl; } return 0;
}
说明:这是推荐的现代C++写法,简洁、安全且不易出错。
立即学习“C++免费学习笔记(深入)”;
2. 使用 compare() 成员函数
std::string
提供了compare()
成员函数,可用于更复杂的比较场景,比如子串比较或大小比较。
std::string str1 = "apple"; std::string str2 = "apple"; <p>if (str1.compare(str2) == 0) { std::cout << "字符串相等" << std::endl; }</p>
说明:compare()
返回0表示相等,小于0表示str1较小,大于0表示str1较大。适合需要判断大小关系时使用。
3. 比较 C 风格字符串(char*)
对于C风格字符串(以<p>对于C风格字符串(以<code>