Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
deeonia58
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 6
#1

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

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

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

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

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

В строке найти количество встречающихся рядом символов соседних по алфавиту - C++
В строке найти количество встречающихся рядом символов «соседних по алфавиту» - «а» и «б», «Ю» и «Я» и т.п. Дописать в конец строки...

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

Найти максимальное из чисел встречающихся в массиве более одного раза - C++
Найти максимальное из чисел, встречающихся в данном одномерном массиве более одного раза. Вывести количество посторов этого числа.

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 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;
}
Миниатюры
Найти суму чисел встречающихся в строке  
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
19.09.2013, 16:07 #3
alsav22, объясни, пожалуйста, как работает. Как-то слишком элегантно смотрится. Я бы начал искать пробелы, потом проверять являются ли последовательности символов между пробелами числами и потом их суммировать. А в твоем сообщении всё так стройненько, но не очень понятно
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.09.2013, 16:22 #4
Стройненько, потому что используется строковый поток и код только под конкретную строку. В строке слова и числа идут строго через раз. Строка помещается в строковый поток, потом, в цикле, идёт чтение слов (с помощью >>) из потока. Одно в string, одно в int. Числа суммируются.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
19.09.2013, 16:26 #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Стройненько, потому что используется строковый поток и код только под конкретную строку. В строке слова и числа идут строго через раз. Строка помещается в строковый поток, потом, в цикле, идёт чтение слов (с помощью >>) из потока. Одно в string, одно в int. Числа суммируются.
Понял! Вся фишка в чередовании. Спасибо.
alsav22
5417 / 4813 / 442
Регистрация: 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2013, 17:04
Привет! Вот еще темы с ответами:

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

Двумерный массив. Найти: максимальное из чисел, встречающихся в заданной матрице более одного раза - C++
Найти: максимальное из чисел, встречающихся в заданной матрице более одного раза Матрица: 2 4 7 6 5 8 9 34 43 4 34 53 45 345 3 6 5 56...

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

подсчет символ из строки s1, встречающихся в строке s2. - C++
Помогите написать программу, которая подсчитывает количество символов из строки s1, встречающихся в строке s2.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.09.2013, 17:04
Ответ Создать тему
Опции темы

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