স্ট্রিং রিভার্স মানে ক্যারেক্টারগুলো বিপরীত ক্রমে প্রিন্ট বা সংরক্ষণ করা। রিকার্সনে এটি খুব সুন্দরভাবে করা যায়।
উদাহরণ কোড
#include <iostream>
using namespace std;
void reverse(char *str) {
if (*str == '\0')
return;
else {
reverse(str + 1);
cout << *str;
}
}
int main() {
char str[] = "C++ is fun";
cout << "Original String: " << str << endl;
cout << "Reversed String: ";
reverse(str);
return 0;
}
আউটপুট
Original String: C++ is fun Reversed String: nuf si ++C
ব্যাখ্যা
রিকার্সিভ ফাংশন reverse()
*str == '\0'হলে বেস কেস: রিটার্ন।- অন্যথায়:
reverse(str + 1)কল করে পরবর্তী ক্যারেক্টারের জন্য রিকার্সন। - রিটার্ন হওয়ার সময় (unwinding phase)
cout << *strপ্রিন্ট করে। এতে লাস্ট ক্যারেক্টার প্রথমে প্রিন্ট হয় → রিভার্স হয়।
main()
স্ট্রিং ইনিশিয়ালাইজ, অরিজিনাল প্রিন্ট, reverse() কল।
নোট: এটি কেবল প্রিন্ট করে, স্ট্রিং মডিফাই করে না। স্ট্রিং মডিফাই করতে টু-পয়েন্টার অথবা std::reverse ব্যবহার করুন।