아래 코드는 두 문자열에 대한 일치 시작 색인의 임의 값을 반환합니다. 예를 들어 s = Mississippi 및 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
우선,'=='비교가 문자열에 대해 작동하는지 알고 있습니까? –
@ user7348 녹색 체크 표시를 클릭하여 대답을 수락 할 수 있습니다. 제발 그만 해! – jlars62