我真的很難獲得遞歸,但我嘗試遞歸匹配字符串內的模式。在字符串中搜索模式
假設我有一個字符串怪纔怪才和我有一個模式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'。 –