我正在尝试制作一个 bool 函数,该函数将允许在该字符串的输入中搜索字符串的输入和子字符串的输入。bool 函数应该递归搜索匹配,如果字符串中有匹配则返回 true。例如: 'word' 作为字符串输入,然后 'or' 是我在字符串中查找的子字符串。然后该函数应该返回 true,因为 'or' 在 '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;
}