これを行う簡単な方法はありません。少なくとも、私が知っている組み込みの方法はありません。小さな文字列の各文字を繰り返し処理し、大きな文字列に一致する最初の文字を見つける必要があります。
一致する文字が見つかるたびに、次の小さな文字列にループしますが、代わりに、前の文字が見つかった後でのみインデックスで検索を開始します。
編集: テストされていないいくつかの疑似コードには、構文エラーがある可能性があります:
int foundChar = 0;
for (int l = 0; l < strlen(smallstring); l++)
{
bool found = false;
for (; foundChar < strlen(largestring); foundChar++)
{
if (smallstring[l] == largestring[foundChar])
{
// We break here because we found a matching letter.
// Notice that foundChar is still in scope so we preserve
// its value for the next check.
found = true;
foundChar++; // Increment so the next search starts with the next letter.
break;
}
}
// If we get down here, that means we've searched all of the letters
// and found no match, we can result with a failure to find the match.
if (found == false)
{
return false;
}
}
// If we get here, it means every loop resulted in a valid match.
return true;