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
廣告