C++ 字符串 == 和 compare() 之间的区别?

c++server side programmingprogramming

在 C++ 中,我们可以使用 compare() 函数和 == 运算符比较两个字符串。那么问题是为什么有两种不同的方法?有区别吗?

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

相关文章