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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.82
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
10.08.2010, 07:07     Как преобразовать часть массива char в double #1
есть большой массив char
в нем есть несколько элементов которые нужно преобразовать в число типа double

например

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

Как можно это сделать ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.08.2010, 08:13     Как преобразовать часть массива char в double #2
Вытащить нужные кусок в отдельную строку и преобразовать в число, допустим функцией atof().
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
10.08.2010, 08:25  [ТС]     Как преобразовать часть массива char в double #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);
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
10.08.2010, 08:29     Как преобразовать часть массива char в double #4
nill, а почему в твоём примере ты используешь atoi а не atof? (atoi для int, atof для double).
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.08.2010, 08:38     Как преобразовать часть массива char в double #5
В ручную посимвольно копировать не очень то удобно. Можно воспользоваться специальными функциями
C++
1
strncpy(Y, (X+i), len); // i - индекс начального символа, len - длина числа.
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
10.08.2010, 08:57  [ТС]     Как преобразовать часть массива char в double #6
nikkka,
точно ошибся


kazak,
А откуда нам известно значение len ?
или это просто длинна массива Y в который копируем то есть 4 в моем примере ?
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
10.08.2010, 09:05     Как преобразовать часть массива char в double #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);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2010, 09:09     Как преобразовать часть массива char в double
Еще ссылки по теме:

Как записать значение типа double в char? C++
Не могу преобразовать тип char в тип double C++
Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++

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

Или воспользуйтесь поиском по форуму:
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.08.2010, 09:09     Как преобразовать часть массива char в double #8
Я предположил, что длина чисел извнстна.
Yandex
Объявления
10.08.2010, 09:09     Как преобразовать часть массива char в double
Ответ Создать тему
Опции темы

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