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

машинный код c++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
KennyMccormick
0 / 0 / 0
Регистрация: 07.05.2010
Сообщений: 50
10.05.2010, 20:55     машинный код c++ #1
Кому не сложно, напишите код для задачи: Дана строка, содержащая целые числа, отделённые друг от друга произвольными символами, отличными от цифр. Найти сумму этих чисел.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
10.05.2010, 22:01     машинный код c++ #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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
 
template<typename T, typename U> T my_converter(const U &rhs){
    T result; std::stringstream ss;
    ss << rhs; ss >> result;
    return result;
}
 
std::vector<std::string> func_(const std::string &line){
    std::vector<std::string> res;
    std::string buff;
    std::string::const_iterator 
        beg = line.cbegin(),
        end = line.cend();
 
    for(; beg != end; ++beg)
    {
        if(isdigit(*beg))
        {
            do
            {
                buff += *beg++;
            } while( (beg != end) && isdigit(*beg));    
 
            res.push_back(buff);
            buff.clear();
        }
    }
 
    return res;
}
 
int main(){
 
    std::string line = "100dsfgdfsg100dsfg  300 fsg fdg 100dsfsg"; // 100 + 100 + 300 + 100 = 600
    std::vector<std::string> res = func_(line);
    std::vector<std::string>::const_iterator
        beg = res.cbegin(),
        end = res.cend();
 
    int res_sum = 0;
    for(; beg != end; ++beg){
        std::cout << *beg << " ";
        res_sum += my_converter<int>(*beg);
    }
 
    std:: cout << "\nResult: " << res_sum << '\n';
 
    return 0;
}
http://codepad.org/cRfMp9vp
KennyMccormick
0 / 0 / 0
Регистрация: 07.05.2010
Сообщений: 50
11.05.2010, 11:37  [ТС]     машинный код c++ #3
вот такие ошибки вылезают:
[BCC32 Error] File2.cpp(27): E2316 'cbegin' is not a member of 'std::string'
[BCC32 Error] File2.cpp(28): E2316 'cend' is not a member of 'std::string'
[BCC32 Error] File2.cpp(52): E2316 'cbegin' is not a member of 'std::vector<std::string,std::allocator<std::string> >'
[BCC32 Error] File2.cpp(53): E2316 'cend' is not a member of 'std::vector<std::string,std::allocator<std::string> >'
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
11.05.2010, 11:40     машинный код c++ #4
KennyMccormick, замени соответственно на begin и end.
KennyMccormick
0 / 0 / 0
Регистрация: 07.05.2010
Сообщений: 50
11.05.2010, 11:50  [ТС]     машинный код c++ #5
спасиба огромное!
Yandex
Объявления
11.05.2010, 11:50     машинный код c++
Ответ Создать тему
Опции темы

Текущее время: 18:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru