我正在尝试创建一个bool函数,它允许输入一个字符串,并在该字符串的输入中搜索子字符串的输入。 bool函数应该递归搜索匹配,如果字符串内部匹配则返回true。例如:'word'作为字符串输入,然后'或'是我在字符串中寻找的子字符串。然后该函数应该返回true,因为'或'在'word'中。当我运行代码时,在命令行上它会说“由于StackOverFlowException导致进程终止”我对此错误的含义以及它与我的代码的关系感到困惑。
#include <iostream>
#include <string>
using namespace std;
bool find(string s, string t)
{
if(s.length() <= 1){
return false;
}
int t_len = t.length() - 1;
string se = s.substr(0, t_len);
if(se == t){
return true;
}
else
s.erase(0,0);
return find(s, t);
}
int main()
{
string s;
string t;
cout << "Enter string s: " << endl;
cin >> s;
cout << "Enter string t: " << endl;
cin >> t;
bool is_found = find(s, t);
if(is_found = true)
{
cout << "Found: " << t << " in " << s << endl;
}
system("pause");
return 0;
}
答案 0 :(得分:0)