স্ট্রিং রিভার্স: দুটি পদ্ধতি
পদ্ধতি ১: strrev() লাইব্রেরি ফাংশন ব্যবহার করে
#include <stdio.h>
#include <string.h>
int main() {
char str[50];
printf("Enter a string: ");
gets(str); // নোট: gets() অসুরক্ষিত, fgets() ব্যবহার করুন
strrev(str);
printf("Reversed string = %s\n", str);
return 0;
}
আউটপুট
Enter a string: Hello Reversed string = olleH
পদ্ধতি ২: লাইব্রেরি ফাংশন ছাড়া (ম্যানুয়ালি)
দুটি পয়েন্টার/ইন্ডেক্স ব্যবহার করে প্রথম ও শেষ ক্যারেক্টার সোয়্যাপ করে রিভার্স করা হয়।
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len;
char temp;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
// newline ক্যারেক্টার হ্রাস করুন
len = strlen(str);
if (len > 0 && str[len-1] == '\n')
str[--len] = '\0';
// রিভার্স লজিক
for (i = 0; i < len / 2; i++) {
temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
printf("Reversed string: %s\n", str);
return 0;
}
আউটপুট
Enter a string: Tutorialspoint Reversed string: tniopslairotuT
অ্যালগরিদম ব্যাখ্যা
- স্ট্রিংয়ের দৈর্ঘ্য (
len) বের করুন। - লুপ চালান
i = 0থেকেlen/2 - 1পর্যন্ত। - প্রতিটি ইটারেশনে
str[i]এবংstr[len-1-i]সোয়্যাপ করুন। - লুপ শেষ হলে স্ট্রিং রিভার্স হয়ে যাবে।
নোট
gets()ব্যবহার করবেন না — বাফার ওভারফ্লো হয়।fgets()ব্যবহার করুন।strrev()স্ট্যান্ডার্ড সি লাইব্রেরির অংশ নয় (নন-স্ট্যান্ডার্ড), তাই পোর্টেবল কোডে ব্যবহার করা উচিত নয়।