strncmp() এবং strcmp() দুটি ফাংশনই ASCII ক্যারেক্টার তুলনা ব্যবহার করে দুটি স্ট্রিং তুলনা করে। strncmp() একটি অতিরিক্ত প্যারামিটার নেয় যা নির্দেশ করে কতটুকু ক্যারেক্টার পর্যন্ত তুলনা করা হবে। এটি খুবই উপযোগী কারণ যদি কোনো স্ট্রিং ভ্যালিড না হয়, তবে strcmp() তার অপারেশন সম্পন্ন করতে পারবে না। strcmp() স্ট্রিংয়ের শেষে null ক্যারেক্টার ('\0') খুঁজে বের করে তার অপারেশন শেষ করে। strncmp() ক্যারেক্টার সংখ্যা ব্যবহার করে তার অপারেশন শেষ করে এবং তাই এটি আরও নিরাপদ (safe)।
উদাহরণ (C প্রোগ্রাম)
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "TutorialsPoint";
char str2[] = "Tutorials";
// strncmp() দিয়ে স্ট্রিং তুলনা (প্রথম ৯ ক্যারেক্টার)
int result1 = strncmp(str1, str2, 9);
if (result1 == 0) {
printf("str1 == str2 upto 9 characters!\n");
}
// strcmp() দিয়ে স্ট্রিং তুলনা
int result2 = strcmp(str1, str2);
if (result2 == 0) {
printf("str1 == str2!\n");
} else {
if (result2 > 0) {
printf("str1 > str2!\n");
} else {
printf("str1 < str2!\n");
}
}
return 0;
}
আউটপুট
str1 == str2 upto 9 characters! str1 > str2!
ব্যাখ্যা: strncmp(str1, str2, 9) প্রথম ৯ ক্যারেক্টার তুলনা করে যা "Tutorials" উভয় স্ট্রিংয়ে একই, তাই ০ রিটার্ন করে। কিন্তু strcmp(str1, str2) পুরো স্ট্রিং তুলনা করে এবং "TutorialsPoint" > "Tutorials" (কারণ 'P' > null terminator), তাই পজিটিভ মান রিটার্ন করে।