Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Khác biệt giữa toán tử quan hệ (==) và std::string::compare() trong C++

Chỉ có một sự khác biệt giữa toán tử quan hệ == và std::string::compare(). Đó là giá trị trả về. Bên trong, string::operator==() đang dùng string::compare().

Toán tử quan hệ == trả về boolean chỉ biểu thị 2 chuỗi có bằng nhau hay không, trong khi compare() trả về số nguyên biểu thị mối quan hệ giữa hai chuỗi.

Để làm rõ trường hợp sử dụng, compare() có ích nếu bạn quan tâm đến cách hai chuỗi liên quan nhau (nhỏ hơn hoặc lớn hơn) khi chúng khác nhau. Ví dụ:

Ví dụ

#include <iostream>
using namespace std;
int main() {
    string s1 = "Tutorials Point";
    string s2 = "Hello World";
    cout << (s1 == s2);
    cout << s1.compare(s2);
    cout << s2.compare(s1);
    return 0;
}

Kết quả

0 1 -1