কম্পিউটার টিউটোরিয়াল

C/C++-এ strncmp() এবং strcmp()-এর পার্থক্য


strncmp()

strncmp() ফাংশনটি বাম পাশের স্ট্রিংকে ডান পাশের স্ট্রিংয়ের সাথে একটি নির্দিষ্ট সংখ্যা পর্যন্ত তুলনা করতে ব্যবহৃত হয়। এটি strcmp()-এর মতোই কাজ করে। এটি শূন্য চেয়ে বড় মান রিটার্ন করে যখন বাম স্ট্রিং-এর মিলিত ক্যারেক্টারের ASCII মান ডান স্ট্রিং-এর ক্যারেক্টারের চেয়ে বড় হয়। এটি শূন্য চেয়ে ছোট মান রিটার্ন করে যখন বাম স্ট্রিং-এর মিলিত ক্যারেক্টারের ASCII মান ডান স্ট্রিং-এর ক্যারেক্টারের চেয়ে ছোট হয়।

C ভাষায় strncmp()-এর সিনট্যাক্স:

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

এখানে,

  • leftString — প্রথম স্ট্রিং যা ডান স্ট্রিংয়ের সাথে তুলনা করা হবে।

  • rightString — দ্বিতীয় স্ট্রিং যা প্রথম স্ট্রিংয়ের সাথে তুলনা করতে ব্যবহৃত হয়।

  • number — তুলনা করার সর্বোচ্চ ক্যারেক্টার সংখ্যা।

C ভাষায় strncmp()-এর উদাহরণ:

উদাহরণ

#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("Strings are equal");
    else
        printf("Strings are unequal");
    printf("\nValue returned by strcmp() is: %d", result);
    return 0;
}

আউটপুট

Strings are unequal
Value returned by strcmp() is: 26

strcmp()

strcmp() ফাংশনটি একটি বিল্ট-ইন লাইব্রেরি ফাংশন যা "string.h" হেডার ফাইলে ডিক্লেয়ার করা রয়েছে। এই ফাংশনটি স্ট্রিং আর্গুমেন্টগুলো তুলনা করতে ব্যবহৃত হয়। এটি স্ট্রিংগুলো লেক্সিকোগ্রাফিক্যালি তুলনা করে অর্থাৎ ক্যারেক্টার বাই ক্যারেক্টার তুলনা করে। এটি স্ট্রিংগুলোর সবচেয়ে প্রথম ক্যারেক্টার থেকে তুলনা শুরু করে যতক্ষণ না দুটি স্ট্রিং-এর ক্যারেক্টার সমান হয় বা NULL ক্যারেক্টার পাওয়া যায়।

যদি দুটি স্ট্রিং-এর প্রথম ক্যারেক্টার সমান হয়, তবে এটি দ্বিতীয় ক্যারেক্টার চেক করে এবং এভাবে চলতে থাকে। এই প্রক্রিয়া NULL ক্যারেক্টার পাওয়া না গেলে বা দুটি ক্যারেক্টার অসমান হওয়া পর্যন্ত চলবে। এটি শূন্য রিটার্ন করে যদি দুটি স্ট্রিং অভিন্ন হয় অর্থাৎ দুটি স্ট্রিং-এ ক্যারেক্টারগুলো একই হয়।

এটি শূন্য চেয়ে বড় মান রিটার্ন করে যখন বাম স্ট্রিং-এর মিলিত ক্যারেক্টারের ASCII মান ডান স্ট্রিং-এর ক্যারেক্টারের চেয়ে বড় হয়। এটি শূন্য চেয়ে ছোট মান রিটার্ন করে যখন বাম স্ট্রিং-এর মিলিত ক্যারেক্টারের ASCII মান ডান স্ট্রিং-এর ক্যারেক্টারের চেয়ে ছোট হয়।

C ভাষায় strcmp()-এর সিনট্যাক্স:

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

এখানে,

  • leftString — প্রথম স্ট্রিং যা ডান স্ট্রিংয়ের সাথে তুলনা করা হবে।

  • rightString — দ্বিতীয় স্ট্রিং যা প্রথম স্ট্রিংয়ের সাথে তুলনা করতে ব্যবহৃত হয়।

C ভাষায় strcmp()-এর উদাহরণ:

উদাহরণ

#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("Strings are equal");
    else
        printf("Strings are unequal");
    printf("\nValue returned by strcmp() is: %d", result);
    return 0;
}

আউটপুট

Strings are unequal
Value returned by strcmp() is: 32

  1. C/C++-এ #include <filename> এবং #include "filename"-এর পার্থক্য

  2. C/C++-এ const int*, const int * const, int const * পার্থক্য

  3. C++ স্ট্রিং কনস্ট্যান্ট এবং ক্যারেক্টার কনস্ট্যান্টের পার্থক্য

  4. C++-এ রিলেশনাল অপারেটর (==) এবং std::string::compare() এর পার্থক্য