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

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

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

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

13.01.2013, 23:36. Просмотров 1522. Ответов 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++):

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

разбить строку в массив - C++
Как разбить массив символов в отдельный массив по слову?Я вот что-то написал,проде бы правильно,но когда например ввожу строку "heavy...

Разбить строку в массив через разделитель - C++
Здравствуйте уважаемые форумчане. Мне как новичку интересно как выполнить следующее. Необходимо разбить содержимое строки через...

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

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

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

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

в смысле только числа
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,806
Записей в блоге: 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
Привет! Вот еще темы с ответами:

Подскажите пожалуйста как разбить строку на массив слов? - C++
Надо разбить строку на массив строк при помощи разделителя... Какой функцией для этого надо восьпользоваться?

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

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

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла - C++
задача: передать динамический массив в функцию, и записать в каждый элемент строку из файла. количество строк известно вот что у меня...


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

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

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