私は本当に再帰を得るのに苦労していますが、文字列の中のパターンにマッチする再帰を試みました。文字列内のパターンを検索する
と仮定私は、文字列にオタクためオタクを持っていると私は、文字列クラスの方法を見つける match.IにEKSが正規表現、のようにそこに多くの方法を使用することができ、パターンを持っていますが、私は本当にやりたいです再帰によるこのこと。
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
@Peta希望する出力はパターンの位置になります。上に 'パターン2'、 'パターン12'であると仮定します。 –