strcmp() এবং strncmp() এর মাধ্যমে স্ট্রিং তুলনা
সি প্রোগ্রামিং ভাষায় স্ট্রিং তুলনা করার জন্য দুটি গুরুত্বপূর্ণ ফাংশন রয়েছে: strcmp() এবং **strncmp()**। এই ফাংশন দুটি স্ট্রিংয়ের মধ্যে সমানতা যাচাই করতে বা তাদের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়।
এখানে বিস্তারিত আলোচনা করা হলো:
১. strcmp() – স্ট্রিং তুলনা (পুরো স্ট্রিং)
strcmp() ফাংশনটি দুটি স্ট্রিংয়ের মধ্যে সমানতা বা পার্থক্য যাচাই করার জন্য ব্যবহৃত হয়। এটি দুটি স্ট্রিংয়ের প্রতিটি অক্ষর একে অপরের সাথে তুলনা করে। যদি দুটি স্ট্রিং সমান হয়, তবে এটি 0 রিটার্ন করে, অন্যথায় এটি একটি নেতিবাচক বা ধনাত্মক মান রিটার্ন করে, যা স্ট্রিংয়ের পার্থক্য নির্ধারণ করে।
সিঙ্কট্যাক্স:
int strcmp(const char *str1, const char *str2);str1এবংstr2হলো তুলনা করার জন্য দুটি স্ট্রিং।- যদি
str1 == str2, তাহলে এটি0রিটার্ন করবে। - যদি
str1 < str2, তাহলে এটি একটি নেতিবাচক মান রিটার্ন করবে। - যদি
str1 > str2, তাহলে এটি একটি ধনাত্মক মান রিটার্ন করবে।
উদাহরণ:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "World";
int result1 = strcmp(str1, str2); // সমান স্ট্রিং
int result2 = strcmp(str1, str3); // আলাদা স্ট্রিং
printf("strcmp(str1, str2) = %d\n", result1); // 0 রিটার্ন করবে
printf("strcmp(str1, str3) = %d\n", result2); // একটি ধনাত্মক মান রিটার্ন করবে
return 0;
}আউটপুট:
strcmp(str1, str2) = 0
strcmp(str1, str3) = -15২. strncmp() – স্ট্রিং তুলনা (নির্দিষ্ট সংখ্যক ক্যারেক্টার)
strncmp() ফাংশনটি দুটি স্ট্রিংয়ের প্রথম **n**টি ক্যারেক্টার তুলনা করতে ব্যবহৃত হয়। এটি একইভাবে কাজ করে যেমন strcmp(), তবে এটি শুধুমাত্র প্রথম n ক্যারেক্টার পর্যন্ত তুলনা করে। এটি তখন ব্যবহার করা হয় যখন আপনি শুধুমাত্র একটি নির্দিষ্ট অংশের স্ট্রিং তুলনা করতে চান।
সিঙ্কট্যাক্স:
int strncmp(const char *str1, const char *str2, size_t n);str1এবংstr2হলো তুলনা করার জন্য দুটি স্ট্রিং।nহল তুলনা করার জন্য কতটা ক্যারেক্টার ব্যবহার করা হবে।
যদি প্রথম n ক্যারেক্টারের মধ্যে স্ট্রিংগুলো সমান হয়, তবে এটি 0 রিটার্ন করবে। অন্যথায়, এটি একটি নেতিবাচক বা ধনাত্মক মান রিটার্ন করবে।
উদাহরণ:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello World";
char str2[] = "Hello";
char str3[] = "Hello";
int result1 = strncmp(str1, str2, 5); // প্রথম 5 ক্যারেক্টার তুলনা
int result2 = strncmp(str2, str3, 5); // প্রথম 5 ক্যারেক্টার তুলনা
printf("strncmp(str1, str2, 5) = %d\n", result1); // 0 রিটার্ন করবে (কারণ প্রথম 5 ক্যারেক্টার সমান)
printf("strncmp(str2, str3, 5) = %d\n", result2); // 0 রিটার্ন করবে (কারণ প্রথম 5 ক্যারেক্টার সমান)
return 0;
}আউটপুট:
strncmp(str1, str2, 5) = 0
strncmp(str2, str3, 5) = 0এখানে, strncmp() শুধুমাত্র প্রথম 5 ক্যারেক্টারের তুলনা করেছে, তাই প্রথম স্ট্রিং এবং দ্বিতীয় স্ট্রিংয়ের মধ্যে Hello অংশটি সমান হওয়ায় 0 রিটার্ন হয়েছে।
প্রধান পার্থক্য strcmp() এবং strncmp() এর মধ্যে
| ফাংশন | বর্ণনা | ব্যবহার |
|---|---|---|
strcmp() | দুটি স্ট্রিংয়ের সমস্ত ক্যারেক্টার তুলনা করে। | দুটি স্ট্রিং সম্পূর্ণরূপে তুলনা করতে। |
strncmp() | দুটি স্ট্রিংয়ের প্রথম n ক্যারেক্টার তুলনা করে। | দুটি স্ট্রিংয়ের একটি নির্দিষ্ট অংশ তুলনা করতে। |
strcmp() পুরো স্ট্রিং তুলনা করে, তবে strncmp() শুধু প্রথম n ক্যারেক্টার পর্যন্ত তুলনা করে।
সারসংক্ষেপ
strcmp(): দুটি স্ট্রিং সম্পূর্ণ তুলনা করে এবং স্ট্রিং সমান হলে0রিটার্ন করে, অন্যথায় পার্থক্যের উপর ভিত্তি করে একটি ধনাত্মক বা নেতিবাচক মান রিটার্ন করে।strncmp(): দুটি স্ট্রিংয়ের প্রথমnক্যারেক্টার তুলনা করে এবং স্ট্রিং সমান হলে0রিটার্ন করে, অন্যথায় পার্থক্যের উপর ভিত্তি করে একটি ধনাত্মক বা নেতিবাচক মান রিটার্ন করে। এটি বিশেষ করে যখন স্ট্রিংয়ের কিছু অংশ তুলনা করতে হয় তখন ব্যবহৃত হয়।
এই ফাংশনগুলো স্ট্রিং অপারেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং আপনাকে সঠিকভাবে স্ট্রিং তুলনা করতে সহায়ক।
Read more