Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 18.04.2018
Сообщений: 10

Удалить слово, если оно уже ранее встречалось в строке

18.04.2018, 18:26. Показов 2020. Ответов 2
Метки c, cpp (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь в написании программы: "Пусть слово - последовательность любых символов, расположенных между двумя пробелами. Удалить слово, если оно уже ранее встречалось в строке."
Не понимаю как находить слова, встречавшиеся ранее в строке. Прошу помочь, только начал изучать программирование
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2018, 18:26
Ответы с готовыми решениями:

Вывести самое большое слово в строке (если это первое слово - оно не выводится)
Приветствую всех! Задача вывести самое большое слово в строке. Проблема в том что если самое большое слово первое оно его не выводит. ...

Если на k-й символ попадает слово, то оно относится ко второй строке
Само задание нужно разбить исходную строку на две подстроки , причём первая длинной k. Если на к-й символ попадает слово, то его следует...

Если введенное с клавиатуры слово встречатеся в строке, то удалить его с++
Допустим введи строку "мама мыла раму", слово ввели "мыла", нужно удалить его из строки, т.е. результат "мама...

2
 Аватар для igorrr37
2878 / 2025 / 992
Регистрация: 21.12.2010
Сообщений: 3,779
Записей в блоге: 9
19.04.2018, 12:56
Лучший ответ Сообщение было отмечено ArconWell как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <regex>
#include <cstdlib>
#include <unordered_set> 
 
 
int main()
{
    system("chcp 1251");
    std::string str("ранее встречалось в строке.\n\"Не понимаю как находить слова, встречавшиеся ранее в строке. Прошу"), sres; 
    std::regex reg("\\S+");
    std::unordered_set<std::string> ust;
    for (std::sregex_iterator ib{ str.begin(), str.end(), reg }, ie; ib != ie; ++ib)
    {
        sres += ib->prefix();
        if (true == ust.insert(ib->str()).second)
        {
            sres += ib->str();
        }
    }
    std::cout << sres << std::endl;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.04.2018, 13:16
Лучший ответ Сообщение было отмечено ArconWell как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <set>
 
int main()
{
    const std::string str = "eniki beniki eniki eli vareniki eli eli";
    std::istringstream ist(str);
    using input_it = std::istream_iterator<std::string>;
    for (const auto &word : std::set<std::string>{input_it(ist), input_it()})
        std::cout << word << " ";
}
Добавлено через 1 минуту
Второй вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
 
int main()
{
    const std::string str = "eniki beniki eniki eli vareniki eli eli";
    std::istringstream ist(str);
    using input_it = std::istream_iterator<std::string>;
    std::vector<std::string> v {input_it(ist), input_it()};
    std::sort(v.begin(), v.end());
    std::unique_copy(v.cbegin(), v.cend(), std::ostream_iterator<std::string>(std::cout, " "));
}
Добавлено через 5 минут
С сохранением порядка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <algorithm>
#include <iostream>
#include <iterator>
#include <set>
#include <sstream>
#include <string>
 
int main()
{
    const std::string str = "eniki beniki eniki eli vareniki eli eli";
    std::istringstream ist(str);
    std::set<std::string> s;
    using input_it = std::istream_iterator<std::string>;
    std::copy_if(input_it(ist), input_it(), std::ostream_iterator<std::string>(std::cout, " "),
        [&s](const auto &word) { return s.emplace(word).second; });
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2018, 13:16
Помогаю со студенческими работами здесь

В каждой второй строке удалить третье слово, если такое есть
Добрый день! Ребята срочно нужна помощь,буду признателен,нужно в С++ разработать программу следующего условия: В каждой второй строке...

Как сделать, чтобы когда в строке встречалось слово "*Физика", программа выводила эту строку?
У меня есть структура, один из элементов которой - строка. Как сделать, чтобы когда в строке встречалось слово &quot;*Физика&quot;,...

Как взять слово целиком в Char переменную если оно через дефис (-)
Всем доброго времени суток. Есть такая проблема, не могу понять как взять слово целиком если оно написано через дефис. Есть прога где...

Преобразовать каждое слово в тексте: если слово нечётной длины, то удалить его среднюю букву
Задан текст. Между словами - пробел, за последним символом точка. Вывести текст, предварительно преобразовав каждое слово: если слово...

В каждой строке символов записать в обратном порядке пятое слово, если оно присутствует в строке
Помогите пожалуйста, не понимаю как сделать эту программу, а надо очень срочно её сделать!) Условие: ввести N строк. В каждой строке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru