Составить функцию для подсчета количества числовых констант (последовательностей цифр) - 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;
}

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

  1. Подключение необходимых библиотек: , , .
  2. Определение функции numbers_count, которая принимает на вход указатель на строку s и считает количество числовых констант в ней.
  3. В функции numbers_count используется функция strpbrk, которая ищет первое вхождение в строку s любого символа из строки 0123456789 (цифры). Если такой символ найден, то в s приводит к нему указатель и функция рекурсивно вызывается для оставшейся части строки s. Если символ не найден, то функция возвращает 0.
  4. В функции main создается буфер buf для считывания строки с помощью fgets.
  5. В main организован цикл, который считывает строку с помощью fgets, выводит количество числовых констант в ней с помощью numbers_count и завершается, когда пользователь вводит пустую строку или сигнал конца файла.
  6. В конце программы возвращается 0, что означает успешный конец работы программы.

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


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

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

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