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

Khác biệt giữa string == và compare() trong C++


Trong C++, có thể so sánh hai chuỗi dùng hàm compare() và toán tử ==. Câu hỏi là tại sao có hai phương pháp khác nhau? Có khác biệt không?

Có một số khác biệt cơ bản giữa compare() và ==. Trong C++, toán tử == được nạp chồng cho string để kiểm tra xem hai chuỗi có giống nhau không. Nếu giống, trả về 1, ngược lại 0. Vậy nó giống hàm boolean.

Hàm compare() trả về hai thứ khác nhau. Nếu bằng nhau, trả về 0. Nếu tìm thấy không khớp tại ký tự s và t, và khi s nhỏ hơn t, trả về -1, ngược lại khi s lớn hơn t trả về +1. Nó kiểm tra khớp bằng mã ASCII.

Xem ví dụ để hiểu rõ.

Ví dụ mã

#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 không khớp
    cout << "Comparing str1 and str3 using ==, Res: " << (str1 == str3) << endl;//1 khớp
    cout << "Comparing str1 and str2 using compare(), Res: " << str1.compare(str2) << endl;//kiểm tra nhỏ/lớn
    cout << "Comparing str1 and str3 using compare(), Res: " << str1.compare(str3) << endl;//0 khớp
}

Kết quả

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