মডিউল ১৭-৭ঃ 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 পাস করে দিচ্ছি, তারপরে সেই ইনডেক্সের মানের প্রত্যেকটির জন্য প্রিভিয়াস রিকার্সিভ কল করে আগের লেনথ পাওয়া হয়।

যদি আমরা প্রোগ্রামটি চালাই, তবে আউটপুট হবে:

5

স্ট্রিং "rahat" এর লেনথ হচ্ছে 5।

Last updated