string.h হেডার ফাইলের স্ট্রিং ফাংশনগুলো
স্ট্রিং হ্যান্ডলিংয়ের জন্য প্রিডিফাইনড ফাংশনগুলো string.h-এ থাকে।
| ফাংশন | কাজ |
|---|---|
| strlen() | স্ট্রিংয়ের দৈর্ঘ্য (নাল ক্যারেক্টার বাদে) |
| strcpy() | সোর্স স্ট্রিং কপি করে ডেস্টিনেশনে |
| strncpy() | সোর্স থেকে n ক্যারেক্টার কপি করে |
| strcat() | দুটি স্ট্রিং কনক্যাটেনেট (যোগ) করে |
| strncat() | সোর্স থেকে n ক্যারেক্টার কনক্যাটেনেট করে |
| strcmp() | দুটি স্ট্রিং লেক্সিকোগ্রাফিক্যালি তুলনা করে |
| strncmp() | প্রথম n ক্যারেক্টার তুলনা করে |
| strrev() | স্ট্রিং রিভার্স করে (নন-স্ট্যান্ডার্ড) |
| strstr() | সাবস্ট্রিং সার্চ করে |
প্রতিটি ফাংশনের সিনট্যাক্স ও উদাহরণ
strlen()
size_t strlen(const char *str);
char s[] = "Hello";
printf("%zu", strlen(s)); // 5
strcpy()
char *strcpy(char *dest, const char *src);
char src[] = "Hello";
char dest[20];
strcpy(dest, src); // dest = "Hello"
সতর্কতা: ডেস্টিনেশন বাফার যথেষ্ট বড় হতে হবে, অন্যথায় বাফার ওভারফ্লো হবে।
strncpy()
char *strncpy(char *dest, const char *src, size_t n);
char src[] = "Hello World";
char dest[10];
strncpy(dest, src, 5);
dest[5] = '\0'; // ম্যানুয়ালি নাল টার্মিনেট
// dest = "Hello"
strcat()
char *strcat(char *dest, const char *src);
char a[50] = "Hello";
char b[] = " World";
strcat(a, b); // a = "Hello World"
strncat()
char *strncat(char *dest, const char *src, size_t n);
char a[20] = "Hello";
strncat(a, " World", 3); // a = "Hello Wo"
a[9] = '\0';
strcmp()
int strcmp(const char *s1, const char *s2);
- রিটার্ন 0 → স্ট্রিং দুটি সমান।
- রিটার্ন < 0 → s1, s2-এর চেয়ে ছোট (অক্ষরিক ক্রমে)।
- রিটার্ন > 0 → s1, s2-এর চেয়ে বড়।
strcmp("apple", "ball") // negative (apple < ball)
strncmp()
int strncmp(const char *s1, const char *s2, size_t n);
প্রথম n ক্যারেক্টার তুলনা করে।
strrev() (নন-স্ট্যান্ডার্ড)
char *strrev(char *str);
স্ট্রিং ইন-প্লেস রিভার্স করে।
strstr()
char *strstr(const char *haystack, const char *needle);
needle যদি haystack-এ পাওয়া যায়, তবে প্রথম وقوعের পয়েন্টার রিটার্ন করে, নাহলে NULL।
char *p = strstr("hello world", "world");
if (p) printf("Found at index %ld", p - "hello world");
সারসংক্ষেপ টিপস
- সবসময় বাফার সাইজ চেক করুন (
strncpy,strncat,snprintfব্যবহার করুন)। strcmp== 0 মানে সমান — এই ভুলে যাবেন না।strstrকেস-সেনসিটিভ; কেস-ইনসেনসিটিভের জন্যstrcasestr(POSIX) বা কাস্টম লজিক ব্যবহার করুন।