strcmp() ফাংশন একটি বিল্ট-ইন লাইব্রেরি ফাংশন যা "string.h" হেডার ফাইলে ঘোষিত। এই ফাংশনটি দুটি স্ট্রিং আর্গুমেন্ট তুলনা করতে ব্যবহৃত হয়। এটি লেক্সিকোগ্রাফিক্যালি স্ট্রিং তুলনা করে অর্থাৎ ক্যারেক্টার दर ক্যারেক্টার তুলনা করে। এটি দুটি স্ট্রিংয়ের সবচেয়ে প্রথম ক্যারেক্টার থেকে তুলনা শুরু করে যতক্ষণ না দুটি স্ট্রিংয়ের ক্যারেক্টার সমান থাকে বা NULL ক্যারেক্টার পাওয়া যায়।
যদি দুটি স্ট্রিংয়ের প্রথম ক্যারেক্টার সমান হয়, তবে এটি দ্বিতীয় ক্যারেক্টার চেক করে এবং এভাবেই চলে। এই প্রক্রিয়া NULL ক্যারেক্টার পাওয়া যাওয়ার আগে বা দুটি ক্যারেক্টার অসমান হওয়া পর্যন্ত চলতে থাকে।
C-এ strcmp()-এর সিনট্যাক্স:
int strcmp(const char *leftStr, const char *rightStr );
তুলনার ভিত্তিতে এই ফাংশন তিনটি ভিন্ন মান রিটার্ন করে:
১. শূন্য (0) − দুটি স্ট্রিং একই হলে শূন্য রিটার্ন করে। অর্থাৎ সব ক্যারেক্টার একই।
C-এ strcmp() উদাহরণ (সমান স্ট্রিং):
উদাহরণ
#include<stdio.h>
#include<string.h>
int main() {
char str1[] = "Tom!";
char str2[] = "Tom!";
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 equal Value returned by strcmp() is: 0
২. শূন্যের চেয়ে বড় (>0) − যখন বাম স্ট্রিং-এর মিলিত ক্যারেক্টারের ASCII মান ডান স্ট্রিং-এর ক্যারেক্টারের চেয়ে বড় হয়, তবে শূন্যের চেয়ে বড় মান রিটার্ন করে।
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
৩. শূন্যের চেয়ে ছোট (<0) − যখন বাম স্ট্রিং-এর মিলিত ক্যারেক্টারের ASCII মান ডান স্ট্রিং-এর ক্যারেক্টারের চেয়ে ছোট হয়, তবে শূন্যের চেয়ে ছোট মান রিটার্ন করে।
C-এ strcmp() উদাহরণ:
উদাহরণ
#include<stdio.h>
#include<string.h>
int main() {
char leftStr[] = "Hello World!";
char rightStr[] = "hello World!";
int result = strcmp(leftStr, rightStr);
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