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

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

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

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

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

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

Разбить строку на литералы и записать их в двумерный массив
Правильно выводит только первый литерал. Все остальные - пустые строки,похоже,...

Разбить предложение на слова и записать в массив
дано предложение из 10 слов заполнить ими массив из 10 элементов

Разбить строку на массив слов
Как разбить массив символов в отдельный массив по слову?Я вот что-то...

Как разбить строку на массив слов?
Надо разбить строку на массив строк при помощи разделителя... Какой функцией...

Разбить строку в массив через разделитель
Здравствуйте уважаемые форумчане. Мне как новичку интересно как выполнить...

Строку AnsiString разбить по словам и засунуть в массив
Есть строка: AnsiString s= "Дед%Мазай%Любил%Больших%Девочек"; как её...

3
Wolkodav
609 / 462 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
14.01.2013, 00:49 #2
А только даубл может быть?
0
skybidy
0 / 0 / 1
Регистрация: 04.01.2013
Сообщений: 31
14.01.2013, 00:51  [ТС] #3
Цитата Сообщение от Wolkodav Посмотреть сообщение
А только даубл может быть?
могут быть любые числа

в смысле только числа
0
Avazart
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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;
}
//--------------------------------------------------
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 21:43
Привет! Вот еще темы с решениями:

Разбить строку на массив слов используя strtok()
Мне нужно разделить строку на массив слов используя функцию strtok(), но...

Подскажите как разбить строку на массив слов разделителем
нужно разбить строку на массив строк для дальнейшей обработки, подскажите...

Разбить введенную строку на отдельные слова, выделив под каждое свой массив
Тема: многомерные динамические массивы 1. Разбить введенную строку на...

Разбить введенную строку на слова и выделить под каждое слово отдельный массив
Ребята помогите плиз! Задали задание, а сделать не могу( 1) Написать ф-ию,...


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

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

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