Я пытаюсь запустить код, который сравнивает две строки и подсчитывает, сколько последовательных букв во второй строке доступно в первой строке.
Редактировать: пример того, как должна работать функция:
longest_letter_run ("this_is_some_text", "ais_") Должен возвращать 7, потому что самая длинная буква «is_is_s» a не учитывается, поскольку в первой строке текста нет «a».
Моя проблема в том, что после запуска и подтверждения того, что следующая строка кода верна, (1)
if (word[i] == match[j]){
Я хочу вернуться к следующей итерации в (2)
for (int i=0; i < word.size(); i++){
и продолжайте до тех пор, пока условие в (1) снова не станет ложным, затем я выйду из всех циклов после этого.
Но я не уверен, как это сделать. В некоторых сообщениях предлагалось использовать флаг или использовать goto, но я не думаю, что это работает в этом случае.
Вот то, что я пока имею, который учитывает только появление букв в обеих строках (не считается последовательных букв еще)
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int longest_letter_run(string word, string match){
int iter = 0;
for (int i=0; i < word.size(); i++){
for (int j=0; j <match.size(); j++){
if (word[i] == match[j]){
if (true){
++iter;
}
}
}
}
}