Найти все цифры в строке и вычислить сумму этих цифр - C (СИ)

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

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

Все Работает если вводить без пробелов, но с пробелом выводится только первое число, (если можно с кратким объяснением пожалуйста)
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(){
  5. char str[100];
  6. int x = 0;
  7. scanf("%s", str);
  8. for(int i = 0;i < strlen(str);i++)
  9. {
  10. if((str[i] >= '1') && (str[i] <= '9'))
  11. {
  12. x += ((int)str[i] - 48);
  13. }
  14. }
  15. printf("%d", x);
  16. return 0;
  17. }

Решение задачи: «Найти все цифры в строке и вычислить сумму этих цифр»

textual
Листинг программы
  1. #include <ctype.h>
  2. #include <stdio.h>
  3. #define SIZE 256
  4.  
  5. int main(void)
  6. {
  7.     char str[SIZE], *p;
  8.     unsigned sum = 0;
  9.     fgets(str, SIZE, stdin);
  10.     for (p = str; *p; p++)
  11.         if (isdigit(*p))
  12.             sum += *p - '0';
  13.     printf("%u\n", sum);
  14.     return 0;
  15. }

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

  1. Подключение необходимых библиотек для работы с функциями ввода-вывода и преобразования символов в цифры.
  2. Определение размера строки, с которой будет работать программа (в данном случае 256 символов).
  3. Создание двух переменных: строки str и указателя p.
  4. Инициализация суммы чисел равной 0.
  5. Считывание строки с помощью функции fgets().
  6. Начинается цикл, который проходит по каждому символу в строке.
  7. С помощью функции isdigit() проверяется, является ли текущий символ цифрой.
  8. Если символ является цифрой, то он преобразуется в целое число и добавляется к сумме (sum).
  9. После прохождения всех символов в строке, сумма выводится на экран с помощью функции printf().
  10. Программа завершается, возвращая 0.

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы