以下の私のコードは、2 つの文字列の一致する開始インデックスのランダムな値を返します。たとえば、s = ミシシッピ、t = sip の場合、関数は 6 を返す必要があります。コードを設定して、m の値を返す直前に出力するようにしました。実際、私のプログラムは 6 を出力しますが、数百万単位のランダムな値を返します。
int index_of_sub(string s, string t, int m)
{
if(s.length() - m < t.length())
{
return -1;
}
if(s.substr(m, t.length()) == t)
{
cout << m << endl;
return m;
}
else
{
index_of_sub(s, t, m + 1);
}
}//end index_of_sub function
int index_of(string s, string t)
{
return index_of_sub(s, t, 0);
}//end index_of function