C++ में हम compare() फंक्शन और == ऑपरेटर का उपयोग करके दो स्ट्रिंग्स की तुलना कर सकते हैं। फिर सवाल यह है कि दो अलग-अलग विधियां क्यों हैं? क्या कोई अंतर है या नहीं?
compare() और == ऑपरेटर के बीच कुछ बुनियादी अंतर हैं। C++ में == ऑपरेटर स्ट्रिंग के लिए ओवरलोडेड है ताकि यह जांचा जा सके कि दोनों स्ट्रिंग्स समान हैं या नहीं। यदि वे समान हैं तो यह 1 लौटाएगा, अन्यथा 0। इसलिए यह बूलियन टाइप फंक्शन की तरह है।
compare() फंक्शन दो अलग-अलग चीजें लौटाता है। यदि दोनों समान हैं, तो यह 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
cout << "Comparing str1 and str3 using ==, Res: " << (str1 == str3) << endl;//मैच के लिए 1
cout << "Comparing str1 and str2 using compare(), Res: " << str1.compare(str2) << endl;//छोटे और बड़े की जांच
cout << "Comparing str1 and str3 using compare(), Res: " << str1.compare(str3) << endl;//मैच के लिए 0
}
आउटपुट
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