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

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

Войти
Регистрация
Восстановить пароль
 
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
#1

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

24.01.2012, 01:11. Просмотров 485. Ответов 6
Метки нет (Все метки)

Есть строка формата:

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.
(Язык С++/С).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 01:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Господа, нужно выбрать double-архив из строки string(С++/С) (C++):

Нужно чтобы функция в зависимости от условий возвращала string или double - C++
Привет, как можно реализовать? Нужно чтобы функция в зависимости от условий возвращала string или double

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double - C++
Думаю из-за polp #include<iostream> #include<cmath> #include<cstdlib> using namespace std; double polp(double af,double...

Double в string - C++
Как преобразовать double в string. Пробовал так: ostringstream ost; ost <<setprecision(30) << n; c = ost.str(); cout <<...

Double to String - C++
Здравствуйте.Какая функция переводит формат Double в Ansistring.Пробовал DoubleToStr(); не получается...

double to string - C++
Задание 11 главы 7 про массивы и строки Лафоре: перевести число double в строку и отформатировать. Вроде бы не сложно, но не непонятно с...

Преобразование из string в double - C++
Вот простой пример демонстрирующий данную проблему: Так работает: #include <iostream> #include <cstdlib> int main() { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.01.2012, 01:26 #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
2
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
24.01.2012, 02:57  [ТС] #3
alex_x_x, Уважаемый alex_x_x,
БОЛЬШОЕ ВАМ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!

Да здравствуют люди, подобные Вам!
А дни Ваши пусть длятся много дольше.
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
24.01.2012, 19:32 #4
C++
1
2
char c;
stream >> c;
Проникся.
1
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
25.01.2012, 00:55  [ТС] #5
Главное, что все-таки с векторами... А я так надеялся на стандартные ф-ции...
Зато человек помог,-я разобрался, далее пришлось создать ф-цию с аргументом контейнером вектор-double... И понеслось)...
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.01.2012, 01:40 #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, ну это вроде как самое простое)
1
Arem
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 14
25.01.2012, 06:46  [ТС] #7
Спасибо большое.
Сейчас пытаюсь построить графики на основе полученных данных. Рисование используя MoveTo, LineTo дело интересное, но увы, несколько обременительное... Ищу другие пути... Вроде-бы CGraph. Словом, Ars Longa. Vita Brevis Est...)

Добавлено через 29 минут
... Ну как нормально нарисовать график из двух массивов...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 06:46
Привет! Вот еще темы с ответами:

Преобразование Double в string - C++
Допустим у меня есть число double n = 0.0000000000 мне нужно преобразовать его в строку string s = 0.0000000000. Как это сделать?

Преобразование из string в double - C++
Объясните пожалуйста в чем связь между преобразованием данный из string в double и библиотекой русского языка Вот так работает #include...

Преобразовать string^ в double - C++
Есть старая программа на c++, написанная в среде MS VS2010 с использование WinForm, и, как следствие .Net Появилась проблема с...

Преобразовать double в string - C++
Подскажите как преобразовать double в string ?? Нашел что то похожее при помощи ostringstream , но там не совсем то.. ...


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

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

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