Описать рекурсивную функцию 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)); }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
и . - Объявление константы BUFFER_SIZE равной 100.
- Рекурсивная функция abc, которая принимает в качестве аргумента указатель на строку text.
- Проверка условия: если первый символ равен точке, то функция возвращает 0.
- Проверка условия: если первый символ является цифрой, то функция возвращает -1.
- Проверка условия: если первый символ является заглавной или строчной буквой, то функция вызывает саму себя (рекурсия) для следующего символа и добавляет 1 к результату вызова функции.
- Если текущий символ не является заглавной или строчной буквой, то функция вызывает саму себя (рекурсия) для следующего символа.
- Возврат результата вызова функции.
- В функции main считывается строка с помощью fgets в массив s.
- Вызывается функция abc с аргументом s.
- Результат вызова функции abc выводится на экран с помощью printf.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д