কম্পিউটার টিউটোরিয়াল

C++-এ রিকারসিভ ফাংশন দিয়ে সাবস্ট্রিং সার্চ করুন


দুটি স্ট্রিং Str ও subStr দেওয়া থাকলে, subStr কি Str-এ সাবস্ট্রিং হিসেবে আছে কিনা রিকারসিভভাবে চেক করতে হবে।

উদাহরণ

ইনপুট − Str = "tutorialspoint", subStr = "Point"

আউটপুট − Given string does not contain substring!

ইনপুট − Str = "globalization", subStr = "global"

আউটপুট − Given string contains substring!

প্রোগ্রামে ব্যবহৃত পদ্ধতি

রিকারসিভভাবে দুটি স্ট্রিং মিলিয়ে দেখা হয়। match() ফাংশন ক্যারাক্টার মিল খুঁজে, checksubString() ফাংশন পুরো সাবস্ট্রিং খুঁজে।

  • ইনপুট স্ট্রিং Str, subStr নিন।

  • match(char *str1, char *substr1) ফাংশন দুটি স্ট্রিং সমান কিনা চেক করে।

  • checksubString(char *str2, char *substr2) ফাংশন সাবস্ট্রিং খুঁজে।

  • যদি বর্তমান ক্যারাক্টার মিলে, match(str2, substr2) কল করুন।

  • যদি str2 শেষ হয়, ০ ফেরত দিন।

  • অন্যথায় checksubString(str2+1, substr2) কল করুন।

উদাহরণ কোড

#include <iostream>
using namespace std;

int match(char *str1, char *substr1){
    if (*substr1 == '\0'){
        return 1;
    }
    if (*str1 == '\0'){
        if(*substr1 != '\0'){
            return 0;
        }
    }
    if (*str1 == *substr1){
        return match(str1 + 1, substr1 + 1);
    }
    return 0;
}

int checksubString(char *str2, char *substr2){
    if (*str2 == *substr2){
        if(match(str2, substr2)){
            return 1;
        }
    }
    if (*str2 == '\0'){
        return 0;
    }
    else{
        return checksubString(str2 + 1, substr2);
    }
    return checksubString(str2 + 1, substr2);
}

int main(){
    char Str[] = "tutorialspoint";
    char subStr[] = "point";
    if(checksubString(Str, subStr) == 1){
        cout << "Given string contains substring!";
    }
    else{
        cout << "Given string does not contain substring!";
    }
    return 0;
}

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:

Given string contains substring!
  1. C++-এ ফাংশন থেকে লোকাল অ্যারে রিটার্ন কীভাবে করবেন?

  2. C++-এ ফাংশন থেকে অ্যারে রিটার্ন কীভাবে করবেন?

  3. C++-এ সাবস্ট্রিং

  4. C++-এ swap() ফাংশন