Найти все цифры в строке и вычислить сумму этих цифр - C (СИ)
Формулировка задачи:
Все Работает если вводить без пробелов, но с пробелом выводится только первое число, (если можно с кратким объяснением пожалуйста)
#include <stdio.h> #include <string.h> int main(){ char str[100]; int x = 0; scanf("%s", str); for(int i = 0;i < strlen(str);i++) { if((str[i] >= '1') && (str[i] <= '9')) { x += ((int)str[i] - 48); } } printf("%d", x); return 0; }
Решение задачи: «Найти все цифры в строке и вычислить сумму этих цифр»
textual
Листинг программы
#include <ctype.h> #include <stdio.h> #define SIZE 256 int main(void) { char str[SIZE], *p; unsigned sum = 0; fgets(str, SIZE, stdin); for (p = str; *p; p++) if (isdigit(*p)) sum += *p - '0'; printf("%u\n", sum); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с функциями ввода-вывода и преобразования символов в цифры.
- Определение размера строки, с которой будет работать программа (в данном случае 256 символов).
- Создание двух переменных: строки str и указателя p.
- Инициализация суммы чисел равной 0.
- Считывание строки с помощью функции fgets().
- Начинается цикл, который проходит по каждому символу в строке.
- С помощью функции isdigit() проверяется, является ли текущий символ цифрой.
- Если символ является цифрой, то он преобразуется в целое число и добавляется к сумме (sum).
- После прохождения всех символов в строке, сумма выводится на экран с помощью функции printf().
- Программа завершается, возвращая 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д