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

Преобразовать строку в массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны отрезки а, в, с и d. Для каждой тройки этих отрезков напечатать площадь данного треугольника http://www.cyberforum.ru/cpp-beginners/thread888424.html
Даны отрезки а, в, с и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника. (Определить функцию, вычисляющую площадь треугольника, если она существует). Вводится последовательность целых чисел, 0 – конец последовательности. Определить среднее арифметическое простых чисел последовательности (функцией оформить проверку числа:...
C++ Работа с базой данных из консоли Доброго времени суток. Раньше никогда с БД не работал, а тут интересно стало, как все это работает. С обычным приложение все достаточно легко, там готовые компоненты есть. А как это делать из консоли? Можно какой-нибудь простой пример с БД в которой содержится, ну например пара фамилий и номера телефонов (или машин, или товары и цены, в общем все равно, главное разобраться). http://www.cyberforum.ru/cpp-beginners/thread888417.html
C++ Алгоритм Райта
Нужна помощь. Нужно реализовать алгоритм Райта. О нем ничего не могу найти, может кто то что то знает. Помогите пожалуйста.
C++ allocator своя версия
Доброго времени суток. Мне нужно написать class allocator на подобии стандартного. Он должен содержать следующие методы: Method void* allocate (size_t n) Default: returns malloc (n*sizeof(T)) Method void deallocate (void* pointer) Default: free(pointer) Method void construct ( void* p, const T& value) new(p) T(value); Method void destroy (T* p) p->~T();
C++ Объявление и инициализация динамической матрицы http://www.cyberforum.ru/cpp-beginners/thread888391.html
Ребят, только начал разбираться с матрицой. примерно я знаю как написать матрицу, но не знаю как написать динамическую матрицу, и чтоб размеры матрицы вводилось с клавиатуры. помогите написать
C++ Dev-C++ не компилирует программу Dev-C++ перестал компилировать код C++ я пробовал скомпилировать код из книги "C++ для чайников": // // Program to convert temperature from Celsius degree // units into Fahrenheit degree units: // Fahrenheit = Celsius * (212 - 32)/100 + 32 // #include <cstdio> подробнее

Показать сообщение отдельно
madbounce
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 24

Преобразовать строку в массив - C++

02.06.2013, 21:47. Просмотров 307. Ответов 0
Метки (Все метки)

Всем привет. Очень нужна помощь, голову уже сломал. Ситуация следующая. Есть строка
C++
1
2
3
4
5
6
7
8
9
10
11
12
char* stroka; 
stroka=(char*)fp["v"].c_str();  
int len=strlen(stroka); 
for(int i=0;i<len;++i) {
    if (stroka[i]=='V'){
    stroka[i]=' ';
    }
    if (stroka[i]=='+'){
    stroka[i]=' ';
    }
}
    std::cout<<stroka;
Строка эта выдает следующие значения :
-1.59222100115343 1.48241265624629 -0.713754241896364 0.603945896989231 -0.274520862267832 -0.968246360603992 -0.968246360603992 -0.968246360603992 -0.968246360603992 -0.968246360603992

И есть структура
C++
1
2
3
4
5
6
7
8
double z[] = {        // Исходные данные
-1.59222100115343, 1.48241265624629, -0.713754241896364, 0.603945896989231, -0.274520862267832, -0.968246360603992, -0.968246360603992, -0.968246360603992, -0.968246360603992, -0.968246360603992
},
         *data1,        // Корреляционная матрица
        *data2,        // Редуцированная корреляционная матрица
        *t,            // Матрица факторного отображения
        *s,            // Дисперсии
        buf;           // Рабочая переменная
Так вот суть в том что нужно в строке те значения которые нужно подставить в double z.
То есть что бы было : double z[] = { здесь должна быть stroka }
Пробовал, делал, писал что-то подобное :
C++
1
2
3
4
5
6
7
8
9
10
11
const int MAX_NUMBERS = 1000;
double z[MAX_NUMBERS],
         *data1,        // Корреляционная матрица
        *data2,        // Редуцированная корреляционная матрица
        *t,            // Матрица факторного отображения
        *s,            // Дисперсии
        buf;           // Рабочая переменная
for (int i = 0; i < MAX_NUMBERS; i++) {
   int res = sscanf(stroka, "%lf",&z[i]);
   if (res == EOF) return;
}
Ничего не получилось, кто может подскажите пожалуйста

Добавлено через 24 минуты
UPD:
Вот сейчас еще сделал динамический массив, но проблему заполнения так и не могу решить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
counter_word=0;
    for (i=0;i<strlen(stroka)-1;i++)
 if ((stroka[i]==' ') && (stroka[i+1]!=' '))
  counter_word=counter_word+1;
if (stroka[0]!=' ')
    counter_word=counter_word+1;
//cout<<"В строке: "<<counter_word<<" слов";
 
 
 
 
    //const int MAX_NUMBERS = 10;
 
double *z = new double [counter_word],
            *data1,        // Корреляционная матрица
        *data2,        // Редуцированная корреляционная матрица
        *t,            // Матрица факторного отображения
        *s,            // Дисперсии
        buf;           // Рабочая переменная
for (int i = 0; i < counter_word; i++) {
   int res = sscanf(stroka, "%lf",&z[i]);
   if (res == EOF) return;
}
Добавлено через 1 час 49 минут
Как я понял запара по-моему в sscanf. Кто что может посоветовать пожалуйста помогите решить проблему.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru