একটি স্ট্রিং str দেওয়া থাকলে, আমাদের টাস্ক হলো এর রিভার্সড প্যাটার্ন প্রিন্ট করা। প্যাটার্নটি রিভার্সড অর্ডারে ইনক্রিমেন্টাল হবে, এবং স্ট্রিং সমাপ্ত হলে বাকি জায়গায় '*' দিয়ে ফিল আপ করা হবে।
যেমন "abcd" স্ট্রিং ইনপুট দিলে, প্রথম লাইনে "a" প্রিন্ট হবে, পরের লাইনে "cb" প্রিন্ট হবে এবং তৃতীয় লাইনে "**d" প্রিন্ট হবে।
উদাহরণ
ইনপুট: str[] = { "abcd" } আউটপুট: a c b * * d
ব্যাখ্যা −
- প্রথম লাইনে ১ ক্যারেক্টার প্রিন্ট
- দ্বিতীয় লাইনে ২ ক্যারেক্টার রিভার্স অর্ডারে প্রিন্ট
- তৃতীয় লাইনে ৩ ক্যারেক্টার রিভার্স অর্ডারে প্রিন্ট, যদি স্ট্রিং ৩-এর চেয়ে কম হয় তবে ক্যারেক্টার প্রিন্ট করে বাকি স্পেসে * দিয়ে ফিল আপ
ইনপুট: str[] = {"tutorialspoint"} আউটপুট:

নিচে ব্যবহৃত পদ্ধতি −
- স্ট্রিং ট্রাভার্স করব i=0 থেকে এবং চেক করব i
- তারপর একটি ভেরিয়েবল k নিব এবং k = ((i*(i+1))/2)-1 সেট করব
- চেক করব If k >= n-1 then, " * " প্রিন্ট করব অন্যথায় স্ট্রিং-এর ভ্যালু রিভার্স অর্ডারে প্রিন্ট করব
অ্যালগরিদম
Start function int reverse_it(char str[], int n) এ ধাপ ১ → i, j=0, k=0 ডিক্লেয়ার ও ইনিশিয়ালাইজ ধাপ ২ → লুপ: i=0; i= n-1 then, Print "* " Else Print "%c ", str[k] End If k ১ কমান End loop Print new line End loop function int main(int argc, char const *argv[]) এ ধাপ ১ → স্ট্রিং str[] ডিক্লেয়ার ও ইনিশিয়ালাইজ ধাপ ২ → size = sizeof(str)/sizeof(str[0]) ডিক্লেয়ার ও ইনিশিয়ালাইজ ধাপ ৩ → reverse_it(str, size) ফাংশন কল Stop
উদাহরণ
#include <stdio.h>
int reverse_it(char str[], int n) {
int i, j=0, k=0;
for(i=0; i= n-1)
printf("* ");
// স্ট্রিং রিভার্স অর্ডারে প্রিন্ট
else
printf("%c ", str[k]);
k--;
}
// রিভার্স সিকোয়েন্সের পর লাইন ব্রেক
printf("\n");
}
return 0;
}
// Main ফাংশন
int main(int argc, char const *argv[]) {
char str[] = {"tutorialspoint"};
int size = sizeof(str)/sizeof(str[0]);
reverse_it(str, size);
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে −
