@Heckfy325
Начинающий программист. Простите за глупые вопросы

Как удалить слово из строки?

Доброго времени суток друзья!
Вводится строка: «Запись исходного кода программы на С++».
Удалить слова «Запись» и «исходного»

Подскажите как можно это реализовать.

#include <iostream>
#include <string>

using namespace std;

// удаление слов «Запись» и «исходного»
void dellwords(string st) {
    
}

int main()
{
	setlocale(LC_ALL, "RUSSIAN");

	string text;

    cout << "Введите текст: ";
    getline(cin, text);


    // удаляю слова «Запись» и «исходного» из строки
    dellwords(text);

	

	return 0;
}
  • Вопрос задан
  • 2573 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
// Удаление первых n слов из строки
string dellwords(const string& st, int n) 
{
    string result;
    string::const_iterator it = st.begin();
    enum {
        SkipWhitespace,
        SkipWord,
        CopyText
    } state = SkipWhitespace;
    while (it != st.end()) {
        switch (state) {
            case SkipWhitespace:
               if (! isspace(*it)) {
                  if (n == 0) {
                     state = CopyText;
                     result += *it;
                  }
                  else
                     state = SkipWord;
               }
               break;
            case SkipWord:
               if (isspace(*it)) {
                   state = SkipWhitespace;
                   --n;
               }
               break;
            case CopyText:
               result += *it;
               break;
        }
        ++it;
    }
    return result;
}

int main()
{
  setlocale(LC_ALL, "RUSSIAN");

  string text;

    cout << "Введите текст: ";
    getline(cin, text);
    // удаляю слова «Запись» и «исходного» из строки
    cout << dellwords(text, 2) << endl;
    return 0;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы