C++ 中 string == 和 compare() 之间的差别?
在 C++ 中我们可以使用 compare() 函数和 == 运算符来比较两个字符串。那么问题是为什么会有两种不同方法?有任何差别吗?
在 C++ 中,== 运算符被重载为字符串,以检查两个字符串是否相同。如果它们相同,则返回 1,否则返回 0。因此它就像布尔类型函数。
compare() 函数返回不同的结果。如果两者相等,它将返回 0,如果字符 s 和 t 发现不匹配,并且 s 小于 t,则返回 -1,否则 s 大于 t 时,它返回 +1 。它使用 ASCII 码来检查匹配项。
让我们看一个示例来了解上述讨论。
示例代码
#include <iostream> using namespace std; int main() { string str1 = "Hello"; string str2 = "Help"; string str3 = "Hello"; cout << "Comparing str1 and str2 using ==, Res: " << (str1 == str2) << endl;//0 for no match cout << "Comparing str1 and str3 using ==, Res: " << (str1 == str3) << endl;//1 for no match cout << "Comparing str1 and str2 using compare(), Res: " << str1.compare(str2) << endl;//checking smaller and greater cout << "Comparing str1 and str3 using compare(), Res: " << str1.compare(str3) << endl;//0 for no match }
输出
Comparing str1 and str2 using ==, Res: 0 Comparing str1 and str3 using ==, Res: 1 Comparing str1 and str2 using compare(), Res: -1 Comparing str1 and str3 using compare(), Res: 0
广告