ใน 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