Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
deeonia58
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 6
#1

Найти суму чисел встречающихся в строке - C++

19.09.2013, 15:46. Просмотров 423. Ответов 5
Метки нет (Все метки)

Найти суму чисел встречающихся в строке: "Текст: 2013 букв 150 или 350"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 15:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти суму чисел встречающихся в строке (C++):

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

Дан одномерный массив из 25 чисел. Найти суму первых непарных 11 чисел
5.14. Дано одновимірний масив Х, який складається з 15 елементів. Визначити...

В строке найти количество встречающихся рядом символов соседних по алфавиту
В строке найти количество встречающихся рядом символов «соседних по алфавиту»...

Найти суму чисел, введенного целого числа
.Найти суму чисел, введенного целого числа(например 12345 будет 15 ).Через for...

Найти максимальное из чисел встречающихся в массиве более одного раза
Найти максимальное из чисел, встречающихся в данном одномерном массиве более...

Среди чисел массива, встречающихся минимальное число раз, найти максимальное
Дан массив А из N элементов (0<N<1000;0<A<10000). Среди чисел массива,...

5
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.09.2013, 15:57 #2
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
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
 
using namespace std;
 
int main() 
{
    setlocale(0, "");
    
    stringstream s("Текст: 2013 букв 150 или 350");
    
    int sum = 0;
    int n = 0;
    string temp;
    while (s >> temp)
    {
        s >> n;
        sum += n;
    }
    s.clear();
    cout << s.str() << endl;
    cout << "sum = " << sum << endl;
 
    system("pause");
    return 0;
}
0
Миниатюры
Найти суму чисел встречающихся в строке  
Algoritmer
155 / 95 / 24
Регистрация: 07.03.2013
Сообщений: 489
Записей в блоге: 1
19.09.2013, 16:07 #3
alsav22, объясни, пожалуйста, как работает. Как-то слишком элегантно смотрится. Я бы начал искать пробелы, потом проверять являются ли последовательности символов между пробелами числами и потом их суммировать. А в твоем сообщении всё так стройненько, но не очень понятно
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.09.2013, 16:22 #4
Стройненько, потому что используется строковый поток и код только под конкретную строку. В строке слова и числа идут строго через раз. Строка помещается в строковый поток, потом, в цикле, идёт чтение слов (с помощью >>) из потока. Одно в string, одно в int. Числа суммируются.
1
Algoritmer
155 / 95 / 24
Регистрация: 07.03.2013
Сообщений: 489
Записей в блоге: 1
19.09.2013, 16:26 #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Стройненько, потому что используется строковый поток и код только под конкретную строку. В строке слова и числа идут строго через раз. Строка помещается в строковый поток, потом, в цикле, идёт чтение слов (с помощью >>) из потока. Одно в string, одно в int. Числа суммируются.
Понял! Вся фишка в чередовании. Спасибо.
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.09.2013, 17:04 #6
Если с произвольным чередованием, то можно так:
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
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
 
using namespace std;
 
int main() 
{
    setlocale(0, "");
    
    stringstream s("Текст: 2013 150 или или 350 ");
    
    int sum = 0;
    int n = 0;
    string temp;
    while (true)
    {
        s >> n;
        if (!s && s.eof()) break;
        if (!s)
        {
            s.clear();
            s >> temp;
            continue;
        }
        if (s.eof())
        {
            sum += n;
            break;
        }
        else sum += n;
    }
    s.clear();
    cout << s.str() << endl;
    cout << "sum = " << sum << endl;
 
    system("pause");
    return 0;
}
0
19.09.2013, 17:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2013, 17:04
Привет! Вот еще темы с решениями:

Найти максимальное из чисел, встречающихся в заданной матрице более одного раза
дана целочисленная прямоугольная матрица определить: максимальное из чисел...

Найти максимальное из чисел встречающихся в данном одномерном массиве более одного раза
Помогите пожалуйста задачка вроде простенькая : найти максимальное из чисел...

Двумерный массив. Найти: максимальное из чисел, встречающихся в заданной матрице более одного раза
Найти: максимальное из чисел, встречающихся в заданной матрице более одного...

Найти максимальное из чисел встречающихся в матрице более одного раза. Сделать используя указатели и классы
Ребята..помогите,пожалуйста.Надо решить задачу,а никак не выходит(даже не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru