লাইব্রেরী ফাংশন ব্যবহার করে স্ট্রিং পরিচালনা
gets()
, puts()
, strlen()
ইত্যাদি ফাংশন ব্যবহার করে সি প্রোগ্রামিং এ স্ট্রিং পরিচালনা(manipulate) করা শিখবেন। এছাড়া আপনি ইউজার থেকে স্ট্রিং(string) গ্রহণ করে স্ট্রিং এর উপর বিভিন্ন অপারেশন চালাতে শিখবেন। লাইব্রেরী ফাংশন- স্ট্রিং পরিচালনা
সমস্যার ধরন অনুযায়ী আপনাকে প্রায়ই স্ট্রিং ব্যবহার করতে হতে পারে। আপনি যদি ম্যানুয়ালি নিখুঁতভাবে স্ট্রিং পরিচালনা(manipulation) করতে চান তাহলে ইহা অনেক জটিল হতে পারে এং বেশীরভাগ সময়েই আপনাকে সমস্যায় পড়তে হতে পারে।
তাই আমরা আপনাকে এই সমস্যা থেকে উত্তরণের জন্য সি লাইব্রেরী ফাংশন ব্যবহারের জন্য সুপারিশ করছি।
স্টান্ডার্ড লাইব্রেরী ফাংশন:"string.h"
এর অধীনে স্ট্রিং পরিচালনার জন্য অসংখ্য ফাংশন রয়েছে।
স্ট্রিং পরিচালনার জন্য সচরাচর ব্যবহৃত ফাংশন এবং তাদের কাজ নিম্নে তুলে ধরা হলোঃ
ফাংশন | ফাংশনের কাজ |
---|---|
strlen() | স্ট্রিং(string) এর দৈর্ঘ্য নির্ণয় করে। |
strcpy() | এক স্ট্রিং(string) কে অন্য স্ট্রিং এর মধ্যে কপি(Copy) করে। |
strcat() | দুটি স্ট্রিং এর সংযোগ(Concatenation) ঘটায়। |
strcmp() | দুটি স্ট্রিং এর মধ্যে তুলনা(compare) করে। |
strlwr() | স্ট্রিংকে ছোট হাতের বর্ণে(lowercase) রূপান্তর করে। |
strupr() | স্ট্রিংকে বড় হাতের বর্ণে(uppercase) রূপান্তর করে। |
strrev() | স্ট্রিংকে বিপরীত(reverse) ক্রমে সাজায়। |
strstr() | স্ট্রিং থেকে উপস্ট্রিং খুজে বের করে। |
স্ট্রিং(String) পরিচালনার(handling) ফাংশন-সমূহ "string.h"
হেডার ফাইলের অধীনে ডিফাইন্ড(defined) করা আছে।
সুতরাং স্ট্রিং পরিচালনার ফাংশন-সমূহ আপনার প্রোগ্রামে রান(run) করানোর জন্য নিম্নোক্ত কোড যোগ করতে হবে।
#include <string.h>
gets() এবং puts()
সি প্রোগ্রমামিং এ স্ট্রিং গ্রহণ এবং প্রদর্শনীর জন্য যথাক্রমে লাইব্রেরী ফাংশন gets()
এবং puts()
ব্যবহার করা হয়।
#include<stdio.h>
int main()
{
char name[30];
printf("Enter name: ");
gets(name); //ইউজার থেকে স্ট্রিং গ্রহণের ফাংশন
printf("Name: ");
puts(name); //স্ট্রিং প্রদর্শনীর ফাংশন
return 0;
}
নোটঃ স্ট্রিং পরিচালনার জন্য gets()
এবং puts()
উভয় ফাংশন "stdio.h"
হেডার ফাইলে ডিফাইন্ড করা আছে।
সি strlen() ফাংশন
strlen()
ফাংশন একটি স্ট্রিং এর দৈর্ঘ রিটার্ন করে। ইহা null ক্যারেক্টার ('\0') গণনা করে না।
উদাহরণঃ নিচের উদাহরণে strlen()
ফাংশনের মাধ্যমে ch[30] স্ট্রিং এর দৈর্ঘ্য নির্ণয় করে দেখানো হলোঃ
#include <stdio.h>
int main()
{
char ch[30]={'s', 'a', 't', 't', 'a', 'c', 'a', 'd', 'e', 'm', 'y', '\0'};
printf("The length of string is: %d",strlen(ch));
}
আউটপুট
The length of string is: 11
সি strcpy()ফাংশন
strcpy(destination, source)
ফাংশন source স্ট্রিং থেকে স্ট্রিংকে destination এ কপি করে।
উদাহরণঃ নিচের উদাহরণে strcpy() ফাংশনের মাধ্যমে ch1[30] স্ট্রিংকে ch2[30] স্ট্রিং এর মধ্যে কপি করে দেখানো হলোঃ
#include <stdio.h>
int main()
{
char ch1[30]={'s', 'a', 't', 't', 'a', 'c', 'a', 'd', 'e', 'm', 'y', '\0'};
char ch2[30];
strcpy(ch2,ch1);
printf("The value of second string is: %s",ch2);
}
আউটপুট
The value of second string is: sattacademy
সি strcat() ফাংশন
strcat(first_string, second_string)
ফাংশন দুটি স্ট্রিংকে একসঙ্গে যোগ(concatination) করে প্রথম স্ট্রিং হিসাবে রিটার্ন করে।
#include <stdio.h>
int main()
{
char ch1[10] = {'h', 'e', 'l', 'l', 'o', '\0'};
char ch2[10] = {'s', 'a', 't', 't', '\0'};
strcat(ch1,ch2);
printf("The value of first string is: %s",ch1);
}
আউটপুট
The value of first string is: hellosatt
সি strcmp() ফাংশন
strcmp(first_string, second_string)
ফাংশন দুটি স্ট্রিং এর মধ্যে তুলনা করে এবং উভয় স্ট্রিং সমান হলে 0(শূণ্য) রিটার্ন করে।
কনসোল থেকে স্ট্রিং পাঠ(read) করার জন্য এখানে আমরা gets() ফাংশন ব্যবহার করেছি।
#include <stdio.h>
int main()
{
char str1[30],str2[30];
printf("Enter first string: ");
gets(str1);//কনসোল থেকে স্ট্রিং পাঠ(read) করা
printf("Enter second string: ");
gets(str2);
if(strcmp(str1,str2)==0)
printf("Two strings are equal");
else
printf("Two strings are not equal");
}
আউটপুট
Enter first string: satt Enter second string: academy Two strings are not equal
সি strlwr() ফাংশন
strlwr(string)
ফাংশন একটি স্ট্রিংকে ছোট হাতের বর্ণে রুপান্তর করে।
#include<stdio.h>
#include<conio.h>
int main(){
char str[30];
clrscr();
printf("Enter string: ");
gets(str);//কনসোল থেকে স্ট্রিং পাঠ(reads) করে।
printf("String is: %s",str);
printf("\nLower String is: %s",strlwr(str));
getch();
}
আউটপুট
Enter string: SattAcademy String is: SattAcademy Lower String is: sattacademy
সি strupr() ফাংশন
strupr(string)
ফাংশন একটি স্ট্রিংকে বড় হাতের বর্ণে রুপান্তর করে।
#include<stdio.h>
#include<conio.h>
int main(){
char str[30];
clrscr();
printf("Enter string: ");
gets(str);//কনসোল থেকে স্ট্রিং পাঠ(reads) করে।
printf("String is: %s",str);
printf("\nUpper String is: %s",strupr(str));
getch();
}
আউটপুট
Enter string: sattacademy String is: sattacademy Upper String is: SATTACADEMY
সি strrev() ফাংশন
strrev(string)
ফাংশন একটি স্ট্রিংকে উল্টিয়ে ফেলে। অর্থাৎ স্ট্রিং এর প্রথম ক্যারেক্টারগুলো শেষে এবং শেষ ক্যারেক্টারগুলো প্রথমে আসে।
#include<stdio.h>
#include<conio.h>
int main(){
char str[30];
clrscr();
printf("Enter string: ");
gets(str);//কনসোল থেকে স্ট্রিং পাঠ(reads) করা
printf("String is: %s",str);
printf("\nReverse String is: %s",strrev(str));
getch();
}
আউটপুট
Enter string: sattacademy String is: sattacademy Reverse String is: ymedacattas
সি strstr() ফাংশন
Strstr() ফাংশন প্রদত্ত স্ট্রিং এর মধ্যে মিলিত স্ট্রিং এর প্রথম সংঘটনের পয়েন্টার রিটার্ন করে। এটি substring এর মিলিত প্রথম অক্ষর থেকে সর্বশেষ অক্ষর পর্যন্ত রিটার্ন করে।
সিনট্যাক্স:
char *strstr(const char *string, const char *match)
সিনট্যাক্সের ব্যাখ্যাঃ
string: ইহা দ্বারা স্ট্রিং এর সম্পূর্ণ অংশকে বুঝায়। যেখান থেকে substring সার্স করা হবে।
match: ইহা হচ্ছে submatch যা সম্পূর্ণ স্ট্রিং থেকে সার্স করা হবে।
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main(){
char str[100]="I love programming with C";
char *sub;
clrscr();
sub=strstr(str,"programming");
printf("\nSubstring is: %s",sub);
getch();
}
আউটপুট
Substring is: programming with C