Определить есть ли в тексте пять идущих подряд букв "е" - 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, которая принимает текст в виде строки символов, размер этой строки, количество идущих подряд символов и символ, который необходимо проверить на наличие пяти идущих подряд экземпляров. Алгоритм работы функции следующий:

  1. Входные данные:
    • text - начало строки текста
    • text_size - размер строки текста
    • n - количество идущих подряд символов
    • c - символ, который необходимо проверить
  2. Создаем символьный указатель symbol, который будет указывать на текущий символ в строке text.
  3. Инициализируем счетчик counter равным 0.
  4. Входим в цикл, который будет выполняться до тех пор, пока не будет достигнут конец строки (т.е. не будет равен symbol нулевому символу).
  5. Проверяем текущий символ:
    • Если символ равен c, то увеличиваем счетчик counter на единицу.
    • Если counter равен n, то возвращаем 1 (т.е. пять идущих подряд символов найдено).
    • Если символ не равен c, то обнуляем счетчик counter.
  6. После выполнения цикла возвращаем 0 (т.е. пять идущих подряд символов не найдено). В функции main создается случайная строка текста, заполненная случайными символами (за исключением букв е). Затем вызывается функция HasNofC, которая проверяет, есть ли в этой строке пять идущих подряд букв е. Результат проверки выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы