দুটি স্ট্রিং 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!