Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 17
1

Найти характеристику(длину максимальной серии) каждого слова. на С и С++ ввод из файла

01.03.2018, 11:32. Показов 990. Ответов 3
Метки нет (Все метки)

Для ввода заданная строка, состоящая из нескольких слов. Найти характеристику каждого слова. Сортировать слова предложения по возрастанию их характеристик. Характеристика слова - это длина максимальной серии, содержащейся в нем. Серией называются слова в однобуквенном алфавите.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2018, 11:32
Ответы с готовыми решениями:

В каждой строке файла найти максимальную длину слова и подсчитать количество слов максимальной длины
Дан текстовый файл, состоящий из нескольких строк. Строки содержат слова, разделённые пробелами. ...

Определить длину максимальной серии символов
для заданной последовательности символов определить длину максимальной серии символов.Например:в...

Определить длину максимальной серии символов
для заданной последовательности символов определить длину максимальной серии символов....

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

3
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
01.03.2018, 12:53 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 <string>
#include <regex>
#include <algorithm>
#include <map>
 
int main() 
{
    std::string str("aaBbbbccc abc aa");
    std::regex rw("[[:alpha:]]+");
    std::regex rs("([[:alpha:]])\\1*", std::regex_constants::icase);
    std::map<int, std::ssub_match> mm;
    for (std::sregex_iterator ibw(str.begin(), str.end(), rw), iew; ibw != iew; ++ibw)
    {
        std::sregex_iterator ibs(ibw->operator[](0).first, ibw->operator[](0).second, rs), ies;
        auto imax = std::max_element(ibs, ies, [](auto const& a, auto const& b) {return a[0].second - a[0].first < b[0].second - b[0].first; });
        mm[imax->operator[](0).second - imax->operator[](0).first] = ibw->operator[](0);
    }
 
    for (auto const& pr : mm)
    {
        std::cout << pr.first << "  " << pr.second << std::endl;
    }
}
1
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 17
05.03.2018, 00:16  [ТС] 3
А как из файла ввести?
0
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
05.03.2018, 08:31 4
Лучший ответ Сообщение было отмечено ДаринаЛ как решение

Решение

типа такого
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
#include <iostream>
#include <string>
#include <regex>
#include <algorithm>
#include <map>
#include <fstream>
#include <cstdlib>
 
int main()
{
    std::ifstream ifs("in.txt"); // файл находится в папке проекта
    if (!ifs.is_open())
    {
        std::cerr << "Unable to open file\n";
        exit(1);
    }
    std::string str;
    std::regex rw("[[:alpha:]]+");
    std::regex rs("([[:alpha:]])\\1*", std::regex_constants::icase);
    std::multimap<int, std::ssub_match> mm;
    while (std::getline(ifs, str))
    {
        for (std::sregex_iterator ibw(str.begin(), str.end(), rw), iew; ibw != iew; ++ibw)
        {
            std::sregex_iterator ibs(ibw->operator[](0).first, ibw->operator[](0).second, rs), ies;
            auto imax = std::max_element(ibs, ies, [](auto const& a, auto const& b) {return a.length() < b.length(); });
            mm.emplace(imax->length(), ibw->operator[](0));
        }
 
        for (auto const& pr : mm)
        {
            std::cout << pr.first << "  " << pr.second << std::endl;
        }
        mm.clear();
        std::cout << std::endl;
    }
    ifs.close();
    
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2018, 08:31

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

В строке определить длину максимальной серии символов
Есть такая задача Пусть задано множество строк. Определить длину содержащейся в нем...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.