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

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

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