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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
skybidy
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
#1

Разбить строку(с числами) и записать в массив - C++

13.01.2013, 23:36. Просмотров 1399. Ответов 3
Метки нет (Все метки)

Здраствуйте!
У меня есть стринг line например "0.1 0.2 0.3 0.4"
И мне нужно записать эти числа в массив

Я понимаю, что это если не пробел, то записывать можно в другую строку и потом конвентировать в double

Но у меня не совсем получается(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 23:36     Разбить строку(с числами) и записать в массив
Посмотрите здесь:

C++ разбить строку в массив
C++ Разбить введенную строку на слова и выделить под каждое слово отдельный массив
Разбить строку в массив через разделитель C++
C++ Разбить предложение на слова и записать в массив
C++ Подскажите как разбить строку на массив слов разделителем
Подскажите пожалуйста как разбить строку на массив слов? C++
Разбить строку на все "связные" подстроки. Получившиеся подстроки записать в вектор C++
C++ Заполнить массив случайными числами в диапазоне (6, 32), вывести в строку, упорядочить вставкой
C++ Разбить строку на массив слов используя strtok()
C++ Заполнить массив случайными положительными и отрицательными числами и вывести в строку с интервалом
C++ Как строку, заполненную числами, преобразовать в числовой массив?
C++ Строку AnsiString разбить по словам и засунуть в массив

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
14.01.2013, 00:49     Разбить строку(с числами) и записать в массив #2
А только даубл может быть?
skybidy
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
14.01.2013, 00:51  [ТС]     Разбить строку(с числами) и записать в массив #3
Цитата Сообщение от Wolkodav Посмотреть сообщение
А только даубл может быть?
могут быть любые числа

в смысле только числа
Avazart
7065 / 5242 / 262
Регистрация: 10.12.2010
Сообщений: 23,062
Записей в блоге: 17
14.01.2013, 21:43     Разбить строку(с числами) и записать в массив #4
Если разделитель только пробел, то используй std::stringstream

Добавлено через 8 минут
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
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
 
#include <windows.h>
 
using namespace std;
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
string s="0.1 0.2 0.3 0.4";
stringstream ss(s);
 
vector<double>  vd;
 
copy( istream_iterator<double>(ss),
            istream_iterator<double>(),  back_inserter(vd) );
// Вывод
copy(vd.begin(),vd.end(),ostream_iterator<double>(cout,"\n") ) ;
 
system("pause");
return 0;
}
//---------------------------------------------------------------------------
Если использовать boost, то можно как-то так

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
#include <windows.h>
#include <iostream>
#include <vector>
#include <string>
 
#include <boost/spirit/core.hpp>
#include <boost/spirit/actor/push_back_actor.hpp>
 
#include <boost/foreach.hpp> //  чисто для удобства вывода...
#define foreach BOOST_FOREACH
//--------------------------------------------------
bool parse_digs(const char* str,std::vector<double>& v)
{
    using namespace boost::spirit;
 
    return parse(
                 str,
                 *real_p[push_back_a(v)],
                 space_p
        ).full ;
}
//--------------------------------------------------
int main()
{
    std::vector<double> vd;
 
    std::string s="0.1 0.2 0.3 0.4";
 
    std::cout<<"successful "<<std::boolalpha<< parse_digs(s.c_str(),vd) <<std::endl;
 
    // Вывод :
    foreach(const double& d,vd) std::cout<<d<<"\t";
    std::cout<<std::endl;
 
    system("pause");
    return 0;
}
//--------------------------------------------------
Yandex
Объявления
14.01.2013, 21:43     Разбить строку(с числами) и записать в массив
Ответ Создать тему
Опции темы

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