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

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

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

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

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

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

например

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

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


kazak,
А откуда нам известно значение len ?
или это просто длинна массива Y в который копируем то есть 4 в моем примере ?
nikkka
Мат в 32 хода
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 из vector<char> C++
Как записать значение типа double в char? C++
C++ C++: как преобразовать double в string?
C++ Ошибка: невозможно преобразовать 'double' в 'double'
C++ Как преобразовать string в double и обратно?

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

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

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