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

更新日期:2019-07-30

3K+ 次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始吧
廣告