В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Murad11111111
Murad11111111
21.01.2023 16:14 •  Информатика

Написать программу на языке C++ (тема: сложные действия над строками). Дано осмысленное текстове сообщение (т. е. слова, разделённые пробелами и знаками препинания, в конце предложения ставится точка). Вывести только те слова сообщения, которые встречаются в нём более n раз.

Показать ответ
Ответ:
shapuk
shapuk
10.01.2022 01:00

std::string src;

std::vector<std::string> arr;

boost::split(arr, src, boost::is_any_of(" "));

std::vector<std::string> reverse;

for (auto it = arr.begin(); it != arr.end(); it++)

   reverse.push_back(*it);

std::string res = boost::join(reverse, " ");

И если нужно - удали точку

Сначала надо бы найти точку в строке и обрезать строку по ней, но с этим Вы и сами справитесь  А слова в обратоной последовательности вот:

#include <iostream>

#include <string>

#include <sstream>

#include <stack>

   

int main(){

   std::string str;

   

   while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() ){

       std::istringstream ist(str);

       std::stack<std::string> stk;

       while ( ist >> str )

           stk.push(str);

       while ( ! stk.empty() ){

           std::cout << stk.top() << ' ';

           stk.pop();

       }

       std::cout << std::endl;

   }

   

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота