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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.82
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Как преобразовать часть массива char в double - C++

10.08.2010, 07:07. Просмотров 6851. Ответов 7
Метки нет (Все метки)

есть большой массив char
в нем есть несколько элементов которые нужно преобразовать в число типа double

например

C++
1
2
3
4
5
char X[100];
 
X[20]='0';
X[21]='.';
X[22]='5';
нужно преобразовать эти три элемента массива char в число 0.5 и записать в переменную типа double

Как можно это сделать ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2010, 07:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как преобразовать часть массива char в double (C++):

Как преобразовать long double в char[]? - C++
Приветствую. Подскажите пожалуйста, как преобразовать long double в в тип char? До указателей по книге еще не дошел, в интернете пытался...

Как преобразовать массив char в число double? - C++
Например: char a=0.25 в double b=0.25

Как преобразовать дробную часть числа типа double в int - C++
Есть дробное число, например Z = 123,456 нужно разбить его на два целых числа int I = 123 int F = 456 как это можно сделать ? ...

Не могу преобразовать тип char в тип double - C++
Вся загвоздка в str1 и str2; #include "stdafx.h" #include "conio.h" #include"stdlib.h" #include "cstdlib" #include <iostream> ...

Конвертирование массива char в long double - C++
#include <iostream> #include <stdlib.h> #include <cstring> using namespace std; class money { private: static const int...

Появляющиеся нули при переводе из массива char в double - C++
Здравствуйте! Пишу калькулятор и описываю кнопку "+/-". a=atof(nBuf); a=a*(-1); sprintf (nBuf, "%f", a); nBuf - массив char, в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
10.08.2010, 08:13 #2
Вытащить нужные кусок в отдельную строку и преобразовать в число, допустим функцией atof().
2
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
10.08.2010, 08:25  [ТС] #3
отвечу сам себе чтоб не забыть как это делаеться

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char X[100];
char Y[4]
 
X[20]='0';
X[21]='.';
X[22]='5';
 
Y[0]=X[20];
Y[1]=X[21];
Y[2]=X[22];
Y[3]=0;
 
int a = atoi(Y);
0
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
10.08.2010, 08:29 #4
nill, а почему в твоём примере ты используешь atoi а не atof? (atoi для int, atof для double).
1
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
10.08.2010, 08:38 #5
В ручную посимвольно копировать не очень то удобно. Можно воспользоваться специальными функциями
C++
1
strncpy(Y, (X+i), len); // i - индекс начального символа, len - длина числа.
1
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
10.08.2010, 08:57  [ТС] #6
nikkka,
точно ошибся


kazak,
А откуда нам известно значение len ?
или это просто длинна массива Y в который копируем то есть 4 в моем примере ?
0
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
10.08.2010, 09:05 #7
Цитата Сообщение от nill Посмотреть сообщение
А откуда нам известно значение len ?
В вашем примере это очень легко узнать. Можно просто создать такой цикл:
C++
1
2
3
4
5
6
int i=0;
while(x[i+20]!='\0') //или просто while(x[i]) - компилятор воспринемает их одинаково
{
    y[i]=x[i+20];
    i++;
}
Добавлено через 57 секунд
можно так. а можно в этот цикл использовать как счётчик, а потом прописать strncpy(Y, (X+i), len);
1
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
10.08.2010, 09:09 #8
Я предположил, что длина чисел извнстна.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2010, 09:09
Привет! Вот еще темы с ответами:

Как перевести double в char? - C++
как перевести double в char?

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 - C++
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...

Как записать значение типа double в char? - C++
Есть массив double massiv_str; Проверяем его и если 1,2 или 3 присваиваем соответствующее значение переменной s_out, кот орую будем потом...

Как выделить числа double из vector<char> - C++
Здравствуйте, форумчане. Это вопрос о следующей проблеме http://www.cyberforum.ru/cpp-beginners/thread1523545.html#post8032759 Есть...


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

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

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