0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 1
1

В каждом предложении требуется поменять местами самое длинное и самое короткое слово

01.02.2019, 13:14. Показов 1046. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Введите текст, заканчивающийся знаком *. Каждое предложение заканчивается точкой. В каждом предложении требуется поменять местами самое длинное и самое короткое слово. Пробовал , но не очень получается . Как можно сделать и желательно простыми командами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2019, 13:14
Ответы с готовыми решениями:

Поменять местами в предложении самое длинное и самое короткое слово
Сам код, но тут 12 ошибок выдает в логе: #include "stdafx.h" #include <iostream> #include...

В заданном предложении поменять местами самое длинное и самое короткое слова
В заданном предложении поменять местами самое длинное и самое короткое слова. Считать, что слова в...

Поменять местами самое длинное слово и самое короткое слово в тексте
Пусть есть двумерный массив, заполненный символами. Рассматривать его как многострочный текст,...

Найдите самое длинное, и самое короткое слово в заданном предложении
Найдите самое длинное и самое короткое слово в заданном предложении.

3
2701 / 1954 / 974
Регистрация: 21.12.2010
Сообщений: 3,642
Записей в блоге: 10
05.02.2019, 07:13 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cstdlib>
#include <string>
#include <regex>
#include <algorithm>
 
int main()
{
    system("chcp 1251");
    std::string str{"Введите текст, заканчивающийся знаком . Каждое предложение заканчивается точкой. *"}, sres;
    std::regex r1{ "[^.]+?\\." }, r2{"[А-Яа-яЁё\\d[:alpha:]]+"};
    for (std::sregex_token_iterator ib{ str.begin(), str.end(), r1 }, ie; ib != ie; ++ib)
    {
        auto pr1 = std::minmax_element(std::sregex_iterator{ ib->first, ib->second, r2 }, {}, [](auto const& a, auto const& b) {return a.length() < b.length(); });
        auto pr = std::minmax(pr1.first, pr1.second, [](auto const& a, auto const& b) {return a->position() < b->position(); });
        sres.append(ib->first, pr.first->begin()->first) += pr.second->format("$&");
        if (pr.first != pr.second)
        {
            sres.append(pr.first->begin()->second, pr.second->begin()->first) += pr.first->format("$&");
        }
        sres.append(pr.second->begin()->second, ib->second);
    }
    std::cout << sres << std::endl;
}
2
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
05.02.2019, 10:20 3
igorrr37, красивое решение, но, боюсь, препод у автора его не примет
0
2701 / 1954 / 974
Регистрация: 21.12.2010
Сообщений: 3,642
Записей в блоге: 10
05.02.2019, 12:15 4
Цитата Сообщение от jugu Посмотреть сообщение
препод у автора его не примет
jugu, мда, лет 8 придётся подождать. Раньше ведь и <algorithm>-ы не в почёте были.
0
05.02.2019, 12:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2019, 12:15
Помогаю со студенческими работами здесь

В заданном предложении найти самое короткое и самое длинное слово
Строка вводится с клавиатуры. Нужно выполнить задание, не применяя функций типа strtok и прочих,...

Найти самое длинное и самое короткое слово в предложении
Составить и отладить программу, которая выполняет следующие действия. В заданном тексте из...

Поменять местами самое длинное слово и короткое
Суть задачи: Строка из слов разделенная одним или несколькими пробелами, поменять местами самое...

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

С клавиатуры задана строка, состоящая из слов. Поменяйте местами самое длинное и самое короткое слово
Слова разделены пробелами, пробелов может быть несколько.

В заданном предложении найти самое короткое и самое длинное слова
В заданном предложении найти самое короткое и самое длинное слова :-[


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru