Trong C ++, chúng ta có thể so sánh hai chuỗi bằng cách sử dụng hàm so sánh () và toán tử ==. Sau đó, câu hỏi là tại sao có hai phương pháp khác nhau? Có sự khác biệt nào hay không?
Có một số khác biệt cơ bản giữa toán tử so sánh () và ==. Trong C ++, toán tử ==được nạp chồng cho chuỗi để kiểm tra xem cả hai chuỗi có giống nhau hay không. Nếu chúng giống nhau, hàm này sẽ trả về 1, ngược lại là 0. Vì vậy, nó giống như hàm kiểu Boolean.
Hàm so sánh () trả về hai thứ khác nhau. Nếu cả hai đều bằng nhau, nó sẽ trả về 0, Nếu tìm thấy sự không khớp đối với ký tự s và t, và khi s nhỏ hơn t, thì nó sẽ trả về -1, ngược lại khi s lớn hơn t thì nó trả về +1. Nó kiểm tra sự phù hợp bằng cách sử dụng mã ASCII.
Hãy để chúng tôi xem một ví dụ để có được ý tưởng của cuộc thảo luận ở trên.
Mã mẫu
#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 }
Đầu ra
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