Дана строка символов. Найти сумму цифр, встречающихся в строке. - C (СИ)

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

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

Дана строка символов. Найти сумму цифр, встречающихся в строке.

Решение задачи: «Дана строка символов. Найти сумму цифр, встречающихся в строке.»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
char* search(char* const s, int (*fun)(int) ) 
{
   while ( *s++ )
     if ( fun(*(s - 1)) )
       return s - 1;
       
   return NULL; 
}
    
int main(void)
{
   char s[] = "1 23H4ello 0 world5";
   char *c;
   size_t total = 0; 
  
   for ( c = search(s, isdigit) ; c ; c = search(c + 1, isdigit) )
     total += *c - '0';
    
   printf("%u\n", total);
}

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

В этом коде:

  1. *char search(char const s, int (fun)(int) )** В этой функции мы ищем все символы в строке, которые удовлетворяют заданному условию (в данном случае, являются цифрами). Функция возвращает указатель на первый найденный символ, или NULL, если больше не найденов.
  2. int main(void) В этой функции мы используем функцию search для поиска всех цифр в строке, а затем суммируем их.
  3. char s[] = 1 23H4ello 0 world5; Это строка, в которой мы ищем цифры.
  4. *char c;** Это переменная, которая будет использоваться для хранения указателя на текущий символ в строке.
  5. size_t total = 0; Это переменная, которая будет использоваться для хранения суммы цифр.
  6. for ( c = search(s, isdigit) ; c ; c = search(c + 1, isdigit) ) Мы используем цикл for для прохода по всем найденным цифрам.
  7. *total += c - '0';** Мы добавляем значение каждого найденного символа к общей сумме.
  8. printf(%u\n, total); Мы выводим общую сумму найденных цифр.

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


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

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

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