মডিউল ১৭-৭ঃ Length of a String using Recursion
#include<stdio.h>
// রিকার্সিভ ফাংশন যা স্ট্রিংএর দৈর্ঘ্য হিসেব করে
int fun(char a[], int i) {
// বেস কেস: যদি বর্তমান ইনডেক্সে নাল টার্মিনেটর পাওয়া যায়
if(a[i] == '\0')
return 0;
// পরবর্তী ইনডেক্সের জন্য রিকার্সিভ কল করো
int l = fun(a, i + 1);
// এই সময় বর্তমান ইনডেক্সের মান + 1 রিটার্ন করো
return l + 1;
}
int main() {
char a[20] = "rahat";
// রিকার্সিভ ফাংশনের কল করা
int length = fun(a, 0);
printf("%d\n", length);
return 0;
}
এখানে, ফাংশন fun() প্রথমে বেস কেস চেক করে। যদি বর্তমান ইনডেক্সে নাল টার্মিনেটর পাওয়া যায়, তাহলে ফাংশন থেকে ০ রিটার্ন করে। এটি হচ্ছে বেস কেস বা মৌলিক কেস।
যদি বেস কেস পূরণ না হয়, তবে সেই সময়ে আমরা পরবর্তী ইনডেক্সের জন্য রিকার্সিভ কল করি। এই কলে আমরা i + 1 পাস করে দিচ্ছি, তারপরে সেই ইনডেক্সের মানের প্রত্যেকটির জন্য প্রিভিয়াস রিকার্সিভ কল করে আগের লেনথ পাওয়া হয়।
যদি আমরা প্রোগ্রামটি চালাই, তবে আউটপুট হবে:
স্ট্রিং "rahat" এর লেনথ হচ্ছে 5।
Last updated