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

Господа, нужно выбрать double-архив из строки string(С++/С) - C++

Восстановить пароль Регистрация
 
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
24.01.2012, 01:11     Господа, нужно выбрать double-архив из строки string(С++/С) #1
Есть строка формата:

string str="R 7.2 531.804 119.479 0.477472 175.792 7.22212 -64.2461 0 79.5401 -0.600769 77.957 0 0.982318 0 0 3.708 0";

Нужно выбрать все символы(double-архив).
Первый символ - R, далее 3 пробела.

Я начинающий, возможно кому-то задача тривиальна... Бьюсь не первый день... Это уже крик о помощи.
Спасибо за понимание, Art_snake.
(Язык С++/С).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 01:11     Господа, нужно выбрать double-архив из строки string(С++/С)
Посмотрите здесь:

C++ преобразовать double в string
double to string C++
String To Double (Выражение) C++
Нужно чтобы функция в зависимости от условий возвращала string или double C++
Double to String C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
24.01.2012, 01:26     Господа, нужно выбрать double-архив из строки string(С++/С) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
   std::string str="R 7.2 531.804 119.479 0.477472 175.792 " 
                   "7.22212 -64.2461 0 79.5401 -0.600769 "
                   "77.957 0 0.982318 0 0 3.708 0";
 
   std::stringstream stream (str);
   std::vector<double> v;
   char c;
 
   stream >> c;
   std::copy (std::istream_iterator<double>(stream), std::istream_iterator<double>(), std::back_inserter(v));
   std::copy (v.begin(), v.end(), std::ostream_iterator<double>(std::cout, " "));
}
http://codepad.org/35BkUYNz
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
24.01.2012, 02:57  [ТС]     Господа, нужно выбрать double-архив из строки string(С++/С) #3
alex_x_x, Уважаемый alex_x_x,
БОЛЬШОЕ ВАМ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!

Да здравствуют люди, подобные Вам!
А дни Ваши пусть длятся много дольше.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
24.01.2012, 19:32     Господа, нужно выбрать double-архив из строки string(С++/С) #4
C++
1
2
char c;
stream >> c;
Проникся.
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
25.01.2012, 00:55  [ТС]     Господа, нужно выбрать double-архив из строки string(С++/С) #5
Главное, что все-таки с векторами... А я так надеялся на стандартные ф-ции...
Зато человек помог,-я разобрался, далее пришлось создать ф-цию с аргументом контейнером вектор-double... И понеслось)...
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
25.01.2012, 01:40     Господа, нужно выбрать double-архив из строки string(С++/С) #6
Arem, это есть стандартные функции, для c++
можно и на чистом си, но просто уже не получится

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
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   char str[]="R 7.2 531.804 119.479 0.477472 175.792 " 
                   "7.22212 -64.2461 0 79.5401 -0.600769 "
                   "77.957 0 0.982318 0 0 3.708 0";
  
  size_t  count = 0, i;
  double* res = NULL;
  char*   tmp = strtok(str, " ");
  
  for (count = 1 ; (tmp = strtok(NULL, " ")) && 
                   (res = realloc(res, sizeof(double)*count)) ;
                   ++count)
  {
      sscanf (tmp,"%lf", &res[count-1]);
  }
  
  for (i=0;i<count-1;++i)
  {
      printf ("%lf ", res[i]);
  }
  
  free (res);
 
  return 0;
}
lemegeton, ну это вроде как самое простое)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 06:46     Господа, нужно выбрать double-архив из строки string(С++/С)
Еще ссылки по теме:

Double перевести в string C++
Преобразование из string в double C++
Преобразовать string^ в double C++

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

Или воспользуйтесь поиском по форуму:
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
25.01.2012, 06:46  [ТС]     Господа, нужно выбрать double-архив из строки string(С++/С) #7
Спасибо большое.
Сейчас пытаюсь построить графики на основе полученных данных. Рисование используя MoveTo, LineTo дело интересное, но увы, несколько обременительное... Ищу другие пути... Вроде-бы CGraph. Словом, Ars Longa. Vita Brevis Est...)

Добавлено через 29 минут
... Ну как нормально нарисовать график из двух массивов...
Yandex
Объявления
25.01.2012, 06:46     Господа, нужно выбрать double-архив из строки string(С++/С)
Ответ Создать тему
Опции темы

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