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

C/C++ में strncmp() और strcmp() का अंतर

strncmp()

strncmp() फ़ंक्शन का उपयोग लेफ्ट स्ट्रिंग की तुलना राइट स्ट्रिंग से एक निर्दिष्ट संख्या तक करने के लिए किया जाता है। यह strcmp() की तरह ही काम करता है। जब लेफ्ट स्ट्रिंग के मिलान वाले कैरेक्टर का ASCII मान राइट स्ट्रिंग के कैरेक्टर से अधिक होता है, तो यह शून्य से अधिक मान लौटाता है। जब लेफ्ट स्ट्रिंग के मिलान वाले कैरेक्टर का ASCII मान राइट स्ट्रिंग के कैरेक्टर से कम होता है, तो यह शून्य से कम मान लौटाता है।

C में सिंटैक्स

int strncmp ( const char *leftString, const char *rightString, size_t number );

पैरामीटर्स:

  • leftString - पहली स्ट्रिंग जिसकी तुलना राइट स्ट्रिंग से की जानी है।
  • rightString - दूसरी स्ट्रिंग जिसका उपयोग पहली स्ट्रिंग की तुलना के लिए किया जाता है।
  • number - तुलना करने के लिए अधिकतम कैरेक्टर्स की संख्या।

उदाहरण

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "blank";
    char str2[] = "Hello World!";
    int result = strncmp(str1, str2, 1);
    if (result == 0)
        printf("स्ट्रिंग्स बराबर हैं");
    else
        printf("स्ट्रिंग्स असमान हैं");
    printf("\nstrncmp() द्वारा लौटाया गया मान: %d", result);
    return 0;
}

आउटपुट

स्ट्रिंग्स असमान हैं
strncmp() द्वारा लौटाया गया मान: 26

strcmp()

strcmp() फ़ंक्शन एक बिल्ट-इन लाइब्रेरी फ़ंक्शन है और "string.h" हेडर फ़ाइल में घोषित है। इस फ़ंक्शन का उपयोग स्ट्रिंग आर्गुमेंट्स की तुलना के लिए किया जाता है। यह स्ट्रिंग्स की शब्दकोश क्रम में तुलना करता है, जिसका अर्थ है कि यह दोनों स्ट्रिंग्स की तुलना कैरेक्टर दर कैरेक्टर करता है। यह स्ट्रिंग्स के पहले कैरेक्टर की तुलना से शुरू करता है जब तक कि दोनों स्ट्रिंग्स के कैरेक्टर बराबर न हों या NULL कैरेक्टर न मिल जाए।

यदि दोनों स्ट्रिंग्स का पहला कैरेक्टर बराबर है, तो यह दूसरे कैरेक्टर की जांच करता है और इसी तरह आगे बढ़ता है। यह प्रक्रिया तब तक जारी रहती है जब तक NULL कैरेक्टर न मिल जाए या दोनों कैरेक्टर असमान न हों। यदि दोनों स्ट्रिंग्स समान हैं यानी दोनों स्ट्रिंग्स में कैरेक्टर समान हैं, तो यह शून्य लौटाता है।

जब लेफ्ट स्ट्रिंग के मिलान वाले कैरेक्टर का ASCII मान राइट स्ट्रिंग के कैरेक्टर से अधिक होता है, तो यह शून्य से अधिक मान लौटाता है। जब लेफ्ट स्ट्रिंग के मिलान वाले कैरेक्टर का ASCII मान राइट स्ट्रिंग के कैरेक्टर से कम होता है, तो यह शून्य से कम मान लौटाता है।

C में सिंटैक्स

int strcmp(const char *leftString, const char *rightString);

पैरामीटर्स:

  • leftString - पहली स्ट्रिंग जिसकी तुलना राइट स्ट्रिंग से की जानी है।
  • rightString - दूसरी स्ट्रिंग जिसका उपयोग पहली स्ट्रिंग की तुलना के लिए किया जाता है।

उदाहरण

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "hello World!";
    char str2[] = "Hello World!";
    int result = strcmp(str1, str2);
    if (result == 0)
        printf("स्ट्रिंग्स बराबर हैं");
    else
        printf("स्ट्रिंग्स असमान हैं");
    printf("\nstrcmp() द्वारा लौटाया गया मान: %d", result);
    return 0;
}

आउटपुट

स्ट्रिंग्स असमान हैं
strcmp() द्वारा लौटाया गया मान: 32
  1. - C/C++ में const int*, const int * const, और int const * में अंतर?

    उपरोक्त प्रतीकों का अर्थ निम्नलिखित है: int* - int का पॉइंटर। यह काफी स्पष्ट है। int const * - const int का पॉइंटर। int * const - int का कॉन्स्ट पॉइंटर। int const * const - const int का कॉन्स्ट पॉइंटर। यह भी ध्यान दें कि: const int * और int const * समान हैं। const int * const और int const * const स

  1. - C++ स्ट्रिंग कॉन्स्टेंट्स और कैरेक्टर कॉन्स्टेंट्स में अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल है। इसका प्रकार char है। उदाहरण के लिए, a ASCII आधारित सिस्टम पर मान 97 के साथ char प्रकार का है। डबल कोट्स में एक कैरेक्टर या कैरेक्टर्स की स्ट्रिंग एक स्ट्रिंग लिटरल दर्शाती है। इसका प्रकार const char[] है और यह स्ट्रिंग की लंबाई + 1 के आकार

  1. - C++ में रिलेशनल ऑपरेटर (==) और std::string::compare() में अंतर

    रिलेशनल ऑपरेटर == और std::string::compare() के बीच केवल एक अंतर है। वह है रिटर्न वैल्यू। आंतरिक रूप से, string::operator==() string::compare() का उपयोग कर रहा है। रिलेशनल ऑपरेटर (==) एक बूलियन लौटाता है जो केवल यह दर्शाता है कि 2 स्ट्रिंग्स समान हैं या नहीं, जबकि compare एक इंटीजर लौटाता है जो दर्श