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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
MaZaFCkY
2 / 2 / 0
Регистрация: 30.11.2011
Сообщений: 25
#1

Как написать свою функцию atof() - C++

28.03.2012, 00:42. Просмотров 1164. Ответов 8
Метки нет (Все метки)

Как написать свою функцию atof()?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2012, 00:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как написать свою функцию atof() (C++):

Как написать свою функцию типа printf? - C++
Доброго времени суток! Прошу помочь в непонятном для меня задании. Какой должна быть функция, чтоб при ее вызове (в следующеем виде) ...

Как написать свою функцию std::replace? - C++
В STL есть функция std::replace. Как написать свою? У меня не получается template < typename T, class Container<T> > void...

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

Как сделать свою формат-функцию? - C++
навроде void logtofile(const char * _Format, ...) { FILE * pFile; pFile = fopen ("log.txt","a"); fprintf (pFile,...

как написать свою библиотеку функций? - C++
Я только начинаю изучать программирование на С++, параллельно разбираюсь с ООП. Вообще идеи ООП понятны и нравятся мне. Удобно разложить...

Преобразовать функцию strcmp в СВОЮ функцию - C++
Нужно заменить функцию strcmp на свою. я создала свою, но код не коректний и выбивает ошибки. #include <iostream> #include <stdio.h>...

8
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
28.03.2012, 01:23 #2
Проверять посимвольно строку на число, выкидывая буквы и прочие символы.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.03.2012, 01:27 #3
Avazart, не забываю про точку
0
MaZaFCkY
2 / 2 / 0
Регистрация: 30.11.2011
Сообщений: 25
28.03.2012, 01:38  [ТС] #4
Цитата Сообщение от go Посмотреть сообщение
Avazart, не забываю про точку
да вот в чем косяк как распознать точку и продолжить после этого запись если точка есть
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.03.2012, 01:46 #5
C
1
while (isdigit(c) || c == '.')
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
28.03.2012, 01:47 #6
Таким же образом как и цифры
C++
1
if(ch[i]==".") //....
Avazart, не забываю про точку
Если на то и пошло- не забыть и про "-" и "e".
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.03.2012, 01:48 #7
Кол-во точек тоже предусмотрите.

Добавлено через 30 секунд
Цитата Сообщение от Avazart Посмотреть сообщение
про "-" и "e".
Это уже сложно для новичка.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
28.03.2012, 01:58 #8
Допустим
Код
char ch[]="123.56";
Можно представить как
Код
float dig=(ch[0]-48)*pow(10,2)+(ch[1]-48)*pow(10,1)+(ch[2]-48)*pow(10,0)
+(ch[4]-48)*pow(10,-1)+(ch[5]-48)*pow(10,-2)
Где 48 целое число соответствующие символу 0
1
CLOH
5 / 5 / 3
Регистрация: 30.12.2010
Сообщений: 40
28.03.2012, 02:13 #9
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
31
32
double atof(s)
char *s;
{
   double val, power;
   int i, sign, c;
 
   while(isspase(*s))
          ++s;
 
    sign=1;
 
    if(*s=='+' || *s=='-')
       sign=(*s++='+')?1:-1;
 
    val=0;
 
    while(isdigit(c=*s++))
       val=10*val+c-'0';
 
    if(*s=='.')
       ++s;
 
    power=1;
 
    while(isdigit(c=*s++))
       {
        val=10*val+c-'0';
        power*=10;
       }
 
    return (sign*val/power);
   }
1
28.03.2012, 02:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2012, 02:13
Привет! Вот еще темы с ответами:

не могу разобраться как написать функцию сортировки и исправить функцию добавления в стек - C++
#include <iostream> #include<Windows.h> using namespace std; struct NE{ int x; NE *pnext,*ppor,*cur;}; class SPISOK { NE...

Что c_str делает и его смысл в целом? Как заменить atof на scanf - C++
Ребят, поясните пожалуйста что c_str делает и его смысл в целом. И как переделать чтобы вместо atof было scanf string coord; ...

Заменить функцию strlen на свою - C++
подскажите, как написать свою собственную функцию, эквивалентную функции strlen. Вот код: #include <stdio.h> #include <stdlib.h> ...

не удается релизовать свою функцию sort для шаблонного массива - C++
функция должна получать Array<T>::Iterator #ifndef SORT_H #define SORT_H #include <iostream> //#include <string> ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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