我真的很难获得递归,但我尝试递归匹配字符串内的模式。在字符串中搜索模式
假设我有一个字符串怪才怪才和我有一个模式EKS到match.I可以用许多方法有像正则表达式,找到字符串类的方法,但我真正想做的事情这件事通过递归。
要做到这一点我想这个代码:
void recursion(int i,string str)
{
if(!str.compare("eks"))
cout<<"pattern at :"<<i<<'\n';
if(i<str.length() && str.length()-1!=0)
recursion(i,str.substr(i,str.length()-1));
}
int main()
{
string str("geeks for geeks");
for(int i=0;i<str.length();i++)
recursion(i,str.substr(i,str.length()));
}
输出:
期望输出继电器:
pattern at 2
pattern at 12
我应该怎么做是错在这里做什么会用递归来做这件事的好方法是什么?
我了解了cpp中的很多主题,但有了递归,我知道他们是如何工作的,甚至每当我尝试用递归编码时,它永远不会工作。可以有任何地方可以帮助我递归好?
现在是学习如何使用调试器的好时机,如果以前没有做过。使用调试器,您可以逐行浏览您的代码,以查看发生了什么。并且进入函数调用以跟踪它们。一直可以监视变量及其值。 –
你想要的输出是什么?毕竟,你的程序返回0. – Zeta
@Zeta期望的输出将是模式的位置,假设在上面它应该是'模式在2''模式在12'。 –