Там нет простого способа сделать это, по крайней мере, не построена в пути, что я знаю. Вам нужно будет проходить через каждую букву вашей маленькой строки и найти первую букву, соответствующую вашей большой строке.
Каждый раз, когда вы находите соответствующее письмо, вы выполняете цикл до следующей строки маленькой строки, но вместо этого начинаете поиск по индексу после того, как нашли предыдущую букву.
EDIT: некоторые псевдо код, непроверенных, могут иметь синтаксические ошибки:
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;
но что делать, если между буквами маленькой строки есть буквы. как thisisstring и hssg пример – user2331875