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

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

Показать ответ
Ответ:
Islami1
Islami1
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-бота