Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alisa_yur
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 19
#1

Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд - C++

10.06.2016, 10:12. Просмотров 207. Ответов 4

Дано ряд символов S. Определить, верно ли, что в ряду s есть 5 букв е которые идут подряд
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2016, 10:12     Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд
Посмотрите здесь:

В тех словах, которые окончиваются сочетанием букв "ть", заменить его окончание на "ил" C++
C++ Определить количество слов, которые содержат ровно четыре буквы "о", "О"
C++ Строки. Верно ли, что в последовательности s ,…, s имеется пять идущих подряд букв ‘e’
C++ Заданный словарь слов. Найти в нем слова-палиндромы, то есть такие, которые одинаково читаются слева направо и наоборот, например, "АННА", "ШАЛАШ"
C++ Напечатать те слова, которые состоят из всех букв, что и слово "red"
Выяснить, верно ли, что в последовательности имеются пять идущих подряд букв е C++
C++ Дано натуральное число. Верно ли, что цифра "a" встречается в нем реже, чем цифра "b"?
Есть ли в строке слова, которые содержат все буквы слова "read" C++
C++ Выяснить, есть ли в заданной строке слова, которые содержат все буквы слова "read"
Определить и вывести по три в строке числа из заданного диапазона, которые заканчиваются цифрой "5" C++
C++ Определить количество букв "а" в заданной строке
Выяснить, верно ли, что в последовательности имеются пять идущих подряд заданных букв C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
no_attention
27 / 27 / 13
Регистрация: 18.05.2016
Сообщений: 128
10.06.2016, 10:50     Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд #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
int main()
{
    char *s = "fdsfndsifaaageeeeenfdjgndfkjjjjj";
    for (uint i = 0; i < strlen(s) - 4; ++i)
    {
        if (s[i] == 'e')
        {
            bool is_ok = true;
            for (uint j = i + 1; j < i + 5; ++j)
            {
                if (s[i] != s[j])
                    is_ok = false;
            }
            if (is_ok)
            {
                cout << "Пять символов подряд есть." << endl;
                return 0;
            }
        }
    }
    cout << "Пяти символов подряд нет." << endl;
    return 0;
}
Добавлено через 8 минут
Так лучше.
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
int main()
{
    char *s = "ee";
    for (int i = 0; i < int(strlen(s) - 4); ++i)
    {
        if (s[i] == 'e')
        {
            bool is_ok = true;
            for (int j = i + 1; j < i + 5; ++j)
            {
                if (s[i] != s[j])
                    is_ok = false;
            }
            if (is_ok)
            {
                cout << "Пять символов подряд есть." << endl;
                return 0;
            }
            i += 4;
        }
    }
    cout << "Пяти символов подряд нет." << endl;
    return 0;
}
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,507
10.06.2016, 10:52     Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд #3
C++
1
if (strstr(s, "eeeee")) ...
no_attention
27 / 27 / 13
Регистрация: 18.05.2016
Сообщений: 128
10.06.2016, 10:57     Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд #4
Байт, чувствую себя глупо.
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,507
10.06.2016, 11:44     Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд #5
no_attention, Не убивайтесь. Функции strstr вы могли и не знать. И "все мы учились по-немногу..."
Но вот еще маленькое замечание общего порядка. Строки 9-14 вашего второго кода можно оформить так
C++
1
2
3
4
5
for (int j = i + 1; j < i + 5; ++j)
            {
                if (s[i] != s[j]) break;
            }
            if (j ==i+5)  // Значит, достигли благополучно конца цикла
И лишних переменных вводить не надо, и пустых прокручивание цикла нет (когда is_ok уже равно false)
Мелочи, конечно...
Yandex
Объявления
10.06.2016, 11:44     Определить, верно ли, что в строке s есть 5 букв "е", которые идут подряд
Ответ Создать тему
Опции темы

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