Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
1

Распечатать те группы цифр, в которых цифра 7 встречается не более 2 раз

23.01.2017, 20:32. Показов 2719. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести строку, состоящую только из цифр и букв. Распечатать те группы
цифр, в которых цифра 7 встречается не более двух раз (группа цифр - это
последовательность цифр, обрамленная буквами).

Можно ли сделать более компактно и изящнее?

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
43
#include <iostream>
#include <functional>
#include <algorithm>
#include <string>
#include <atomic>
 
std::string symb = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
std::string numb = "0123456789";
 
std::function<bool(char c)> is_symbol = [&](char c) -> bool
{
    return (std::find(symb.begin(), symb.end(), c) != symb.end()) ? true : false;
};
 
std::function<bool(char c)> is_digit = [&](char c) -> bool
{
    return (std::find(numb.begin(), numb.end(), c) != numb.end()) ? true : false;
};
 
auto cmp(std::string& str) -> void
{
    std::string::iterator pos = std::find_if(str.begin(), str.end(), is_symbol);
    std::atomic<std::size_t> count = 0, position = 0;
    for (std::string::iterator cur = pos; cur != str.end(); ++cur)
    {
        while (cur == std::find_if(cur, cur + 1, is_digit))
        {
            count += static_cast<std::size_t>(std::count(cur, cur + 1, '7'));
            ++cur;
            ++position;
        }
        if (count >= 2) { std::for_each(cur - position, cur, 
                          [&](char c) { std::cout << c; }); std::cout << std::endl; }
        count = position = 0;
    }
}
 
int main()
{
     std::string ss = "366777CC AA73877BA27357 CA80C  A3377DF";
     cmp(ss);
     return 0; 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2017, 20:32
Ответы с готовыми решениями:

Распечатать те группы цифр, в которых цифра 7 встречается не более двух раз
Ввести строку, состоящую только из цифр и букв. Распечатать те группы цифр, в которых цифра 7...

Распечатать те группы цифр, в которых цифра 7 встречается не более двух раз
Ввести строку, состоящую только из цифр и букв. Распечатать те группы цифр, в которых цифра 7...

Дана строка, состоящая из цифр и букв. Распечатать те группы цифр, в которых цифра 7 встречается не более двух раз.
В общем сразу к делу , есть проблемы с заданием по теме JS-a. Нужно ввести строку, состоящую только...

Подсчитать количество цифр данного числа. Правильно, что данная цифра встречается более двух раз
1. Подсчитать количество цифр данного числа. Правильно, что данная цифра встречается более двух раз.

4
TheCalligrapher
23.01.2017, 20:50
  #2

Не по теме:

Цитата Сообщение от zarko97 Посмотреть сообщение
std::function<bool(char c)> is_symbol = [&](char c) -> bool
{
"Можно ли сделать более компактно и изящнее?" - это шутка или троллинг?

Цитата Сообщение от zarko97 Посмотреть сообщение
while (cur == std::find_if(cur, cur + 1, is_digit))
??? Скорее всего таки троллинг...

Цитата Сообщение от zarko97 Посмотреть сообщение
std::atomic<std::size_t> count
???

0
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
24.01.2017, 00:57 3
Цитата Сообщение от zarko97 Посмотреть сообщение
Можно ли сделать более компактно и изящнее?
Местные знатоки регулярок, если им будет не влом, сделают капец как компактно и изящно! Офигеешь Впечатлишься
0
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
24.01.2017, 01:07  [ТС] 4
_Ivana, я с бустовскими регулярами пытался сделать, но пока опыта не хватает
0
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
24.01.2017, 01:09 5
zarko97, я вообще регулярок не знаю, поэтому даже не пытаюсь. Но когда вижу примеры регулярных котов, проникаюсь всей душой
0
24.01.2017, 01:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2017, 01:09
Помогаю со студенческими работами здесь

Подсчитать количество цифр данного числа. Правильно, что данная цифра встречается более двух раз
Подсчитать количество цифр данного числа. Правильно, что данная цифра встречается более двух раз.

Дано натуральное число. Верно ли, что в данном числе цифра А встречается более двух раз?
Доброго времени суток всем, ребята, помогите пожалуйста нам начали преподавать Visual basic 6.0, ...

Дано натуральное число. Верно ли, что в данном числе цифра А встречается более двух раз?
Доброго времени суток всем. ребята, помогите пожалуйста нам начали преподавать ЯП Haskel, Только...

Найти числа, в которых каждая цифра содержится 2 и более раз
Даны числа от 1111111 до 9999999 Нужно найти числа в которых каждая цифра содержится 2 и более...

Сколько существует трехзначных чисел, в записи которых встречается один раз цифра 2
Поиогите решить эти задачи на языке паскаль: 2. Сколь существует трехзначных чисел в записи,...

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


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

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