Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में string == और compare() के बीच अंतर

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
  1. - C++ और C# में अंतर

    C++ एक स्टैटिकली-टाइप्ड, कंपाइल्ड, मल्टी-पैराडाइम भाषा है (प्रोसीजरल, OOP, जेनेरिक)। C# एक मैनेज्ड, ऑब्जेक्ट-ओरिएंटेड भाषा है जो .NET पर चलती है। मुख्य अंतर पहलूC++C# मेमोरी प्रबंधनमैनुअल (new/delete, स्मार्ट पॉइंटर्स)स्वचालित (गार्बेज कलेक्शन) प्लेटफॉर्मक्रॉस-प्लेटफॉर्म (नेटिव कंपाइलेशन)मुख्य

  1. - C# में String बनाम StringBuilder: अंतर

    स्ट्रिंग मैनिपुलेशन में सही चुनाव प्रदर्शन पर बड़ा प्रभाव डालता है। String (इम्यूटेबल) बनने के बाद **नहीं बदल सकती**। हर ऑपरेशन (+, Replace, Substring) **नई स्ट्रिंग** बनाता है। मेमोरी में नया ऑब्जेक्ट, पुराना गार्बेज कलेक्शन के लिए। थ्रेड-सेफ (इम्यूटेबिलिटी के कारण)। string str = Welcome!; str

  1. - String और StringBuffer के बीच अंतर

    परिचयString एक इम्यूटेबल क्लास है और इसके ऑब्जेक्ट को बनने के बाद संशोधित नहीं किया जा सकता लेकिन निश्चित रूप से अन्य ऑब्जेक्ट्स को संदर्भित कर सकता है। वे मल्टीथ्रेडिंग वातावरण में बहुत उपयोगी हैं क्योंकि कई थ्रेड्स ऑब्जेक्ट की स्थिति को नहीं बदल सकते इसलिए इम्यूटेबल ऑब्जेक्ट्स थ्रेड-सेफ होते हैं।S