Описать рекурсивную функцию abc, которая подсчитывает количество латинских букв в тексте - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Описать рекурсивную функцию abc, которая подсчитывает количество латинских букв в тексте. Текст завершается точкой.

Решение задачи: «Описать рекурсивную функцию abc, которая подсчитывает количество латинских букв в тексте»

textual
Листинг программы
#include <ctype.h>
#include <stdio.h>
 
enum { BUFFER_SIZE = 100 };
 
int abc(const char* text) 
{
    if (*text == '.')
        return 0;
    if (isdigit(*text))
        return -1;
    if (isupper(*text) || islower(*text)) 
{
        int i = abc(text + 1);
        if (i == -1)
            return -1;
        return i + 1;
    }
    return abc(text + 1);
}
 
int main() 
{
    char s[BUFFER_SIZE];
    fgets(s, BUFFER_SIZE, stdin);
    printf("%d", abc(s));
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: и .
  2. Объявление константы BUFFER_SIZE равной 100.
  3. Рекурсивная функция abc, которая принимает в качестве аргумента указатель на строку text.
  4. Проверка условия: если первый символ равен точке, то функция возвращает 0.
  5. Проверка условия: если первый символ является цифрой, то функция возвращает -1.
  6. Проверка условия: если первый символ является заглавной или строчной буквой, то функция вызывает саму себя (рекурсия) для следующего символа и добавляет 1 к результату вызова функции.
  7. Если текущий символ не является заглавной или строчной буквой, то функция вызывает саму себя (рекурсия) для следующего символа.
  8. Возврат результата вызова функции.
  9. В функции main считывается строка с помощью fgets в массив s.
  10. Вызывается функция abc с аргументом s.
  11. Результат вызова функции abc выводится на экран с помощью printf.

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


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

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

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