Найти все цифры в строке и вычислить сумму этих цифр - 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;
}

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

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

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


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

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

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