// 模拟实现库函数的atof函数

#include

#include

#include

#include

double my_atof(char const *p)

{

double ret = 0;

int flag = 1;

int count = 0;

assert(p != NULL);

while (isspace(*p))

{

p++;

}

while (*p)

{

if (count)

{

count = count * 10;

}

if (*p == '+')

p++;

else if (*p == '-')

{

p++;

flag = -1;

}

else if (*p == '.')

{

count++;

p++;

}

else if (*p >= '0'&& *p <= '9')

{

ret = ret * 10 + (*p - '0');

p++;

}

else

return 0;

}

return ret*flag / count;

}

int main()

{

printf("%f\n", my_atof(" +23.45"));

printf("%f\n", my_atof(" -2.345"));

printf("%f\n", my_atof("+234.5"));

printf("%f\n", my_atof("-23.45"));

printf("%f\n", my_atof("2.345"));

printf("%f\n", my_atof("234.5"));

printf("%f\n", my_atof(" ."));

printf("%f\n", my_atof("12.3ab"));

return 0;

}

原文:http://www.cnblogs.com/lcchuguo/p/5386403.html

c语言atof函数源码,【c语言】模拟实现库函数的atof函数相关推荐

  1. c语言strtok函数源码,C语言_strtok函数源代码分析及扩展

    2019独角兽企业重金招聘Python工程师标准>>> 今天在看strtok函数源码时,发现有点绕,就将源码的处理思想以图示的方式展现给大家,希望可以帮助大家. strtok函数 c ...

  2. c语言atof函数源码,【C语言】编纂函数实现库函数atof

    [C语言]编写函数实现库函数atof //编写函数实现库函数atof #include #include #include #include double calculate(const char * ...

  3. 实用c语言函数源码,C语言编写简单朗读小工具(有源码)

    原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...

  4. c语言qsort函数源码,qsort源代码分析

    近来其实常用到qsort库函数. 用法很简单 qsort 的函数原型是void __cdecl qsort ( void *base, size_t num, size_t width, int (_ ...

  5. c语言rand函数源码路径,C语言中的rand()函数

    rand函数,C语言中用来产生一个随机数的函数. rand函数界限:stdlib.h头文件中有宏#define RAND_MAX 0x7fff rand产生一个0-0x7fff的随机数,即最大是327 ...

  6. c语言sleep函数源码,带你了解C语言中的Sleep函数(附代码)

    Sleep函数: 功 能: 执行挂起一段时间 用 法:unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include ,在Linux下,gcc编译器 ...

  7. c语言stoi函数源码,一系列相关函数的通用函数(例如std::stoi,std::stof,std::stod等)...

    我想为std :: stoi,std :: stof,std :: stod等做一个通用函数..就像: // std::string -> int std::string str = " ...

  8. c语言tan函数源码,tan - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义float tanf(float arg);(1)(自C99以来) 双坦(double arg);(2) 长双重坦克(long double arg);(3)(自C99以来) 在头文件中 ...

  9. printf函数源码linux,再来一版简易的printf函数实现

    以前发过两版简易的串口printf函数实现,最近搞了一段时间Linux的库文件,回过头又有不同的理解. 这一版函数基于MSP430F169,%d %x %o %b的实现不再由自己编写函数,而是调用MS ...

最新文章

  1. 打包本地文件, 并使用Winscp上传脚本
  2. JAVA线程池(ThreadPoolExecutor)源码分析
  3. 布尔运算_实例解析!布尔运算运用技巧!
  4. linux大文件系统管理,Linux 磁盘和文件系统管理
  5. js判断字符串中某个字母出现次数最多
  6. win10磁盘100官方解释_win10磁盘分区管理工具大变脸,现代磁盘管理工具喷薄而出...
  7. Spring Boot 项目中Java对象的字符串类型属性值转换为JSON对象的布尔类型键值的解决方法及过程
  8. 2020最新android教程,Android教程2020
  9. win7卸载显卡及对应驱动后桌面分辨率不对以及鼠标键盘无反应
  10. 符号常量和变量有什么区别_JVM是什么?
  11. post提交参数有Date类型,总是返回400格式错误
  12. nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践
  13. Javaweb实现登录界面“记住我”功能
  14. ROS节点运行管理launch文件
  15. ITA和意大利荣耀与共,助力蓝衣军团欧洲杯决赛战胜英格兰!
  16. 另辟蹊径,挑战网络战争
  17. 基于高光谱成像的苹果虫害检测特征向量的选取
  18. 计算机考研总共多少分,考研计算机要过多少分
  19. (18)ROS学习-TF坐标变换之静态坐标变换
  20. 正运动学 与 逆运动学 区别

热门文章

  1. 高性能计算(HPC)和智能计算理解
  2. 2015年,我买了台i7 4790k主机
  3. Python笔记 · 私有方法、私有属性 单下划线、双下划线
  4. GNSS数据下载(持续更新)
  5. 华清远见——重庆中心C高级学习笔记
  6. android擦动画,Android中动画的使用
  7. Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值
  8. c++ string/char* 字符编码转换 (utf8,chs,gbk...)
  9. 计算机音频和网络忽然失效,win7系统电脑突然没有声音的5种故障分析及解决方法详解...
  10. 争做一流的高层管理者,如何管理好一个团队?(管理过程)