41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
1

Вычисление суммы чисел, образованных цифрами в строке

09.10.2014, 01:46. Показов 1374. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
я уже часа 2 бьюсь( не знаю как это сделать, тапками не закидывайте, выложила чисто набросок, уверена что не так(
Дана строка, содержащая буквы и цифры. Разработать программу, которая будет вычислять сумму чисел,
образованных цифрами в строке. Например, для строки “asdd100 fsdf 20 hghg 5 ghg” это значение равно 125.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
 
 
 
int main()
{
    char str[150];
    gets_s(str);
    int len = strlen(str);
    
}
int nums (char* str, int len)
{
    if (len > 1)
    {
        if (str[len] <= 9 && str[len] >= 0)
            return str[len];
        len--;
        nums (str, len);
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2014, 01:46
Ответы с готовыми решениями:

Вычисление суммы квадратов четных чисел и суммы кубов нечетных чисел
Написать программу вычисления суммы S квадратов четных и кубов нечетных чисел от 1 до N. Проверку...

Матрица.В матрице A(6; 6) найти произведение суммы четных чисел в 3-ей строке и суммы отрицательных чисел 1-го столбца
В матрице A(6; 6) найти произведение суммы четных чисел в 3-ей строке и суммы отрицательных чисел...

Оформить в виде функции вычисление среднеарифметического, вычисление суммы и произведения чисел
2. Даны три числа. Оформить в виде функции вычисление среднеарифметического, вычисление суммы и...

Вычисление суммы четных и суммы нечетных чисел в одномерном массиве
1) Написать программу для вычисления суммы четных и суммы нечетных чисел в одномерном массиве!

5
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.10.2014, 02:40 2
Лучший ответ Сообщение было отмечено Pari как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <cstdlib>
#include <cctype>
using namespace std;
 
int main()
{
    int n;
    int sum = 0;
    char ch;
    
    while ((ch = cin.get()) != '\n')
    {
        if (isdigit(ch))
        {
            cin.putback((unsigned char)ch);
            cin >> n;
            sum += n;
            cin.clear();
        }
    }
    cout << "sum = " << sum << endl;
    system("pause");
    return 0;
}
Миниатюры
Вычисление суммы чисел, образованных цифрами в строке  
2
Комп_Оратор)
Эксперт по математике/физике
8849 / 4591 / 619
Регистрация: 04.12.2011
Сообщений: 13,716
Записей в блоге: 16
09.10.2014, 03:17 3
Pari, это конечно не элегантно, но вдруг понравится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
const int str_size = 150;
int summ_numbers_in_str(char *str);
 
int main()
{
   char str[str_size]="abcd100ptr25df3fgh";//это отладочная строчка
//char str[str_size];//зарэмьте верхнюю и разрэмьте эти две, если хотите с вводом)
//cin>>str;
   cout<<"The string typed is "<<str<<endl;
   int summ=summ_numbers_in_str(str);
   cout<<"The numerical summ of string typed is ";
   cout<<summ;
 
   cout << endl;
   system("pause");
    return 0;
}
 
int summ_numbers_in_str(char *str)
{
   char buf[str_size]={0};
   int number_buf=0;
   int summ=0;
   char *iter_char = str;
   do
   {
       if( isdigit(*iter_char) )
      {
          number_buf=atoi(iter_char);
          summ+=number_buf;
          itoa(number_buf, buf, 10);
          iter_char+=strlen(buf);
          continue;
      }
      iter_char++;
   }while(*iter_char);
   return summ;
}
1
1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.10.2014, 10:30 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <iterator>
#include <sstream>
#include <algorithm>
#include <cctype>
#include <functional>
 
int main()
{
   std::string text{"asdd100 fsdf 20 hghg 5 ghg"};
   std::replace_if(text.begin(), text.end(),
                   std::not1(std::ref(isdigit)), ' ');
   std::istringstream iss{text};
   std::cout << "Sum: " << std::accumulate(std::istream_iterator<int>(iss),
                                           std::istream_iterator<int>(), 0);
 
}
1
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
10.10.2014, 00:14  [ТС] 5
благодарю всех, вы очень помогли мне, подтолкнув на изучение библиотек функций
0
Ilot
10.10.2014, 08:40     Вычисление суммы чисел, образованных цифрами в строке
  #6

Не по теме:

DiffEreD, accumulate валяется в numeric.:)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2014, 08:40

Вычисление суммы цифр в строке
Подскажите пожалуйста, как сделать так, чтобы вычислить сумму цифр числа помещенного в строку,...

Вычисление суммы цифр в строке
нужно решить на С++ Дана строка, состоящая из символов, каждый из которых является знаком «+»...

Рекурсия: вычисление суммы цифр в строке
Помогите пожалуйста написать программу! Разработать рекурсивную функцию, возвращающую значение для...

Вычисление объемов тел, образованных вращением фигур, ограниченных заданными линиями
Необходимо вычислить объемы тел, образованных вращением фигур, ограниченных заданными линиям. Ось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru