-3
Я пытаюсь удалить определенные слова (которые находятся в строковом массиве) из предложения, которое находится в строке.C++ удалить соответствующие слова из строки
Здесь я хочу удалить строки, присутствующие в массиве tab
из строки s
. До сих пор я могу разбить строку, но не знаете, как проверить, если конкретная строка присутствует в массиве
#include <iostream>
#include <string>
int main()
{
std::string s("Somewhere down the road");
std::string tab[2]={"The","the","THE"};
std::string::size_type prev_pos = 0, pos = 0;
while((pos = s.find(' ', pos)) != std::string::npos)
{
std::string substring(s.substr(prev_pos, pos-prev_pos));
std::cout << substring << '\n';
prev_pos = ++pos;
}
std::string substring(s.substr(prev_pos, pos-prev_pos));
std::cout << substring << '\n';
}
кто может помочь здесь?
«Не знаю, как» вы имеете в виду: 1) Я не могу вычислить алгоритм, и в этом случае это не имеет ничего общего с C++, или 2) Я знаю алгоритм, но я не уверен, как часть его будет переведена на C++, и в этом случае вы должны отредактировать свой вопрос, описать предложенный вами алгоритм и объяснить, в какой части его возникают проблемы с переводом на C++. –
** Даже с Turbo C++: ** Правильным инструментом для решения таких проблем является ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –
Изменить std :: string tab [2] на std :: string tab [3] – Mikhail