c语言atof函数源码,【c语言】模拟实现库函数的atof函数
// 模拟实现库函数的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函数相关推荐
- c语言strtok函数源码,C语言_strtok函数源代码分析及扩展
2019独角兽企业重金招聘Python工程师标准>>> 今天在看strtok函数源码时,发现有点绕,就将源码的处理思想以图示的方式展现给大家,希望可以帮助大家. strtok函数 c ...
- c语言atof函数源码,【C语言】编纂函数实现库函数atof
[C语言]编写函数实现库函数atof //编写函数实现库函数atof #include #include #include #include double calculate(const char * ...
- 实用c语言函数源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- c语言qsort函数源码,qsort源代码分析
近来其实常用到qsort库函数. 用法很简单 qsort 的函数原型是void __cdecl qsort ( void *base, size_t num, size_t width, int (_ ...
- c语言rand函数源码路径,C语言中的rand()函数
rand函数,C语言中用来产生一个随机数的函数. rand函数界限:stdlib.h头文件中有宏#define RAND_MAX 0x7fff rand产生一个0-0x7fff的随机数,即最大是327 ...
- c语言sleep函数源码,带你了解C语言中的Sleep函数(附代码)
Sleep函数: 功 能: 执行挂起一段时间 用 法:unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include ,在Linux下,gcc编译器 ...
- c语言stoi函数源码,一系列相关函数的通用函数(例如std::stoi,std::stof,std::stod等)...
我想为std :: stoi,std :: stof,std :: stod等做一个通用函数..就像: // std::string -> int std::string str = " ...
- c语言tan函数源码,tan - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
在头文件中定义float tanf(float arg);(1)(自C99以来) 双坦(double arg);(2) 长双重坦克(long double arg);(3)(自C99以来) 在头文件中 ...
- printf函数源码linux,再来一版简易的printf函数实现
以前发过两版简易的串口printf函数实现,最近搞了一段时间Linux的库文件,回过头又有不同的理解. 这一版函数基于MSP430F169,%d %x %o %b的实现不再由自己编写函数,而是调用MS ...
最新文章
- 打包本地文件, 并使用Winscp上传脚本
- JAVA线程池(ThreadPoolExecutor)源码分析
- 布尔运算_实例解析!布尔运算运用技巧!
- linux大文件系统管理,Linux 磁盘和文件系统管理
- js判断字符串中某个字母出现次数最多
- win10磁盘100官方解释_win10磁盘分区管理工具大变脸,现代磁盘管理工具喷薄而出...
- Spring Boot 项目中Java对象的字符串类型属性值转换为JSON对象的布尔类型键值的解决方法及过程
- 2020最新android教程,Android教程2020
- win7卸载显卡及对应驱动后桌面分辨率不对以及鼠标键盘无反应
- 符号常量和变量有什么区别_JVM是什么?
- post提交参数有Date类型,总是返回400格式错误
- nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践
- Javaweb实现登录界面“记住我”功能
- ROS节点运行管理launch文件
- ITA和意大利荣耀与共,助力蓝衣军团欧洲杯决赛战胜英格兰!
- 另辟蹊径,挑战网络战争
- 基于高光谱成像的苹果虫害检测特征向量的选取
- 计算机考研总共多少分,考研计算机要过多少分
- (18)ROS学习-TF坐标变换之静态坐标变换
- 正运动学 与 逆运动学 区别
热门文章
- 高性能计算(HPC)和智能计算理解
- 2015年,我买了台i7 4790k主机
- Python笔记 · 私有方法、私有属性 单下划线、双下划线
- GNSS数据下载(持续更新)
- 华清远见——重庆中心C高级学习笔记
- android擦动画,Android中动画的使用
- Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值
- c++ string/char* 字符编码转换 (utf8,chs,gbk...)
- 计算机音频和网络忽然失效,win7系统电脑突然没有声音的5种故障分析及解决方法详解...
- 争做一流的高层管理者,如何管理好一个团队?(管理过程)