Дана строка символов. Найти сумму цифр, встречающихся в строке. - 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); }
Объяснение кода листинга программы
В этом коде:
- *char search(char const s, int (fun)(int) )** В этой функции мы ищем все символы в строке, которые удовлетворяют заданному условию (в данном случае, являются цифрами). Функция возвращает указатель на первый найденный символ, или NULL, если больше не найденов.
- int main(void) В этой функции мы используем функцию search для поиска всех цифр в строке, а затем суммируем их.
- char s[] =
1 23H4ello 0 world5
; Это строка, в которой мы ищем цифры. - *char c;** Это переменная, которая будет использоваться для хранения указателя на текущий символ в строке.
- size_t total = 0; Это переменная, которая будет использоваться для хранения суммы цифр.
- for ( c = search(s, isdigit) ; c ; c = search(c + 1, isdigit) ) Мы используем цикл for для прохода по всем найденным цифрам.
- *total += c - '0';** Мы добавляем значение каждого найденного символа к общей сумме.
- printf(
%u\n
, total); Мы выводим общую сумму найденных цифр.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д