Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 45
1

Распечатать самые длинные слова, общие для двух предложений

27.03.2019, 18:59. Показов 870. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести два предложения(с помощью char) и распечатать самые длинные слова, общие для этих предложений.
Помогите, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2019, 18:59
Ответы с готовыми решениями:

Вывести два предложения и распечатать самые длинные слова, общие для этих предложений
Здравствуйте. Мне необходима помощь (консультация) на счёт задачи: Вывести два предложения и...

В текстовом файле найти самые длинные и самые короткие слова и удалить их из файла.
Людти добрые помогите пожалуйсто кателок уже совсоем не варит задача :в текстовом файле найти самые...

Обработка строк. Распечатать самые длинные слова, общие для двух данных предложений
Ввести два предложения и распечатать самые длинные слова, общие для этих предложений. Если нужных...

Ввести два предложения и распечатать самые длинные слова, общие для этих предложений
Одно из заданий лабы. Ввести два предложения и распечатать самые длинные слова, общие для этих...

3
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
29.03.2019, 08:52 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <vector>
#include <regex>
#include <thread>
#include <set>
#include <cstdlib>
 
using namespace std::placeholders;
 
template<int N>
auto f(char (&arr)[N], std::set<std::csub_match>& sst)
{
    static std::regex rgx{ "[А-Яа-яЁё[:alpha:]\\d]+" };
    sst.insert( std::cregex_token_iterator{std::begin(arr), std::end(arr), rgx}, {} );
}
 
int main()
{
    system("chcp 1251");
    char ar1[]{ "ффф, цц, 122, вв." }, ar2[]{"122, вввв, ффф. "}; // два предложения
    
    std::set<std::csub_match> sst1, sst2;
 
    auto bnd1 = std::bind(std::mem_fn(&std::csub_match::length), _1);
    auto bnd2 = std::bind(std::mem_fn(&std::csub_match::length), _2);
    auto bnd = std::bind(std::greater<decltype(std::csub_match{}.length())>{}, bnd1, bnd2);
 
    std::multiset<std::csub_match, decltype(bnd)> sstr{ bnd };
    
    std::vector<std::thread> vt;
    vt.emplace_back(f<std::size(ar1)>, std::ref(ar1), std::ref(sst1));
    vt.emplace_back(f<std::size(ar2)>, std::ref(ar2), std::ref(sst2));
    std::for_each(vt.begin(), vt.end(), std::bind(std::mem_fn(&std::thread::join), _1));
    std::set_intersection(sst1.begin(), sst1.end(), sst2.begin(), sst2.end(), std::inserter(sstr, sstr.end()));
    if (!sstr.empty())
    {
        std::copy_n(sstr.begin(), sstr.count(*sstr.begin()), std::ostream_iterator<std::csub_match>{std::cout, "\n"});
    }
}
1
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 45
31.03.2019, 16:05  [ТС] 3
igorrr37, а можно как-то попроще сделать?
0
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 45
02.04.2019, 15:57  [ТС] 4
Помогите, пожалуйста.
0
02.04.2019, 15:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2019, 15:57
Помогаю со студенческими работами здесь

Распечатать самые длинные слова
Ввести два предложения и распечатать самые длиные слова, общие для этих предложений. Если нужных...

Распечатать все самые длинные слова предложения
Словом назовем всякую последовательность букв латинского алфавита длины не более 20. Пред-...

В заданом тексте найти самые короткие и самые длинные слова.
В заданом тексте найти самые короткие и самые длинные слова. Если можно, то с блок-схемкой

Поменять местами самые короткие и самые длинные слова в тексте
В файле есть текст. Определены самое короткое и самое длинное слова. Нужно поменять их местами в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru