Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความแตกต่างระหว่างสตริง C ++ ==และเปรียบเทียบ ()?


ใน C ++ เราสามารถเปรียบเทียบสองสตริงโดยใช้ฟังก์ชัน Compare() และตัวดำเนินการ ==แล้วคำถามคือทำไมมีสองวิธีที่แตกต่างกัน? มีความแตกต่างกันหรือไม่?

มีความแตกต่างพื้นฐานระหว่างตัวดำเนินการ comparison() และ ==ใน C++ ตัวดำเนินการ ==ถูกโอเวอร์โหลดสำหรับสตริงเพื่อตรวจสอบว่าสตริงทั้งสองเหมือนกันหรือไม่ หากเหมือนกัน จะคืนค่า 1 มิฉะนั้น 0 ดังนั้นจึงเหมือนกับฟังก์ชันประเภทบูลีน

ฟังก์ชันเปรียบเทียบ () ส่งคืนสองสิ่งที่แตกต่างกัน หากทั้งคู่เท่ากัน มันจะคืนค่า 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