কম্পিউটার

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


strncmp()

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

এখানে C ভাষায় strncmp() এর সিনট্যাক্স রয়েছে,

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

এখানে,

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

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

  • নম্বর − তুলনা করার জন্য সর্বাধিক অক্ষর সংখ্যা৷

এখানে 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 − প্রথম স্ট্রিং যা ডান স্ট্রিং এর সাথে তুলনা করতে হবে।

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

এখানে 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() এর মধ্যে পার্থক্য