Определить есть ли в тексте пять идущих подряд букв "е" - C (СИ)
Формулировка задачи:
(СИ)дан текст из N символов.Определить есть ли в тексте пять идущих подряд букв "е"
Решение задачи: «Определить есть ли в тексте пять идущих подряд букв "е"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int HasNofC(char *text, size_t text_size, size_t n, char c) { char *symbol = text; size_t counter = 0; while (*symbol != '\0') if (*symbol++ == c) { if (++counter >= n) return 1; } else { counter = 0; } return 0; } int main(int argc, char *argv[]) { srand(time(NULL)); size_t text_size = 255; char *text = (char*)malloc(text_size); size_t i; for (i = 0; i < text_size - 1; ++i) text[i] = rand() % 3 + 'd'; text[text_size - 1] = '\0'; printf("%s\n%d\n", text, HasNofC(text, text_size, 5, 'e')); free(text); return 0; }
Объяснение кода листинга программы
В данном коде реализована функция HasNofC
, которая принимает текст в виде строки символов, размер этой строки, количество идущих подряд символов и символ, который необходимо проверить на наличие пяти идущих подряд экземпляров.
Алгоритм работы функции следующий:
- Входные данные:
text
- начало строки текстаtext_size
- размер строки текстаn
- количество идущих подряд символовc
- символ, который необходимо проверить
- Создаем символьный указатель
symbol
, который будет указывать на текущий символ в строкеtext
. - Инициализируем счетчик
counter
равным 0. - Входим в цикл, который будет выполняться до тех пор, пока не будет достигнут конец строки (т.е. не будет равен
symbol
нулевому символу). - Проверяем текущий символ:
- Если символ равен
c
, то увеличиваем счетчикcounter
на единицу. - Если
counter
равенn
, то возвращаем 1 (т.е. пять идущих подряд символов найдено). - Если символ не равен
c
, то обнуляем счетчикcounter
.
- Если символ равен
- После выполнения цикла возвращаем 0 (т.е. пять идущих подряд символов не найдено).
В функции
main
создается случайная строка текста, заполненная случайными символами (за исключением букве
). Затем вызывается функцияHasNofC
, которая проверяет, есть ли в этой строке пять идущих подряд букве
. Результат проверки выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д