再帰を使用する課題に取り組んでいます。私はまだ再帰を理解するのに少し苦労していますが、少なくともそれがどのように機能するかはわかりません。
私の課題には 2 つの部分がありますが、今のところ、最初の部分について少しだけ助けが必要です。これが私がしなければならないことです:
C 文字列内で > 文字が最初に出現した位置を返す再帰関数を作成します。
これは私がこれまでに持っているものです...
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
int test(string s, char x);
int main ()
{
test("lets test for the letter s", "s" );
}
int test(string s, char x)
{
if(s.length() == 0)
return 0;
else if (s[0] == x)
return 1 + test(s.substr(1, s.length()), x);
else
return test(s.substr(1, s.length()), x);
}
だから私はこれがうまくいくはずだと思うが、関数に何かをテストさせる方法について少し混乱している. メインの関数呼び出しで文字列部分が正しく行われていると確信していますが、値を受け入れるための文字を取得できません。私の理解では、スキャンしたいテキストを入力してから、探したい文字を入力する必要があります。誰かが私が間違っていることを教えてもらえますか、それとも再帰関数に近づいていますか?