Составить функцию для подсчета количества числовых констант (последовательностей цифр) - C (СИ)
Формулировка задачи:
Составить функцию для подсчета количества числовых констант (последовательностей цифр) в символьной строке и программу для проверки работоспособности этой функции.
Решение задачи: «Составить функцию для подсчета количества числовых констант (последовательностей цифр)»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int numbers_count(const char * s) { if ( s = strpbrk(s, "0123456789") ) { strtol(s, (char**)&s, 10); return 1 + numbers_count(s); } else return 0; } int main(void) { char buf[BUFSIZ]; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) printf("%d numbers.\n", numbers_count(buf)); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
, , . - Определение функции
numbers_count
, которая принимает на вход указатель на строкуs
и считает количество числовых констант в ней. - В функции
numbers_count
используется функцияstrpbrk
, которая ищет первое вхождение в строкуs
любого символа из строки0123456789
(цифры). Если такой символ найден, то вs
приводит к нему указатель и функция рекурсивно вызывается для оставшейся части строкиs
. Если символ не найден, то функция возвращает 0. - В функции
main
создается буферbuf
для считывания строки с помощьюfgets
. - В
main
организован цикл, который считывает строку с помощьюfgets
, выводит количество числовых констант в ней с помощьюnumbers_count
и завершается, когда пользователь вводит пустую строку или сигнал конца файла. - В конце программы возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д