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