用c语言编写的atof函数,自己实现的atof()和atoi()代码
# re: 自己实现的atof()和atoi()代码 回复 更多评论
2014-09-05 22:27 by memristor
定义函数 double atof(const char *nptr);
函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数
字或正负符号才开始做转换,而再遇到非数字或字符串结束时
('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负
号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值 返回转换后的浮点型数。
#include
#include
#include
#include
#include
double myatof(const char*s)
{
assert(s!=NULL);
double val,val2,power;
int sign,sign2,i;
//去掉字符串中的空格
for(i=0;isspace(s[i]);++i)
;
//判断正负数 ,并将i指向下一个位置
sign = (s[i] == '-') ? -1:1;
if(s[i] == '+' || s[i] == '-')
i++;
//取浮点数的整数部分
for(val=0.0;isdigit(s[i]) && s[i] !=0;++i)
val = 10*val+s[i]-'0';
//取小数点
if(s[i] == '.')
i++; //后一个位置
//取小数点后面数
for(power=1.0;isdigit(s[i]) && s[i] !=0;++i)
{
val = 10*val+s[i]-'0';
power*=10; //float 放大的倍数
}
val=sign*val/power;
//如果有e的话处理e后面的数字
if(s[i]=='e' || s[i]== 'E'){
i++;
sign2 = (s[i] == '-')?-1:1;
if(s[i] == '+' || s[i] == '-')
i++;
for(val2=0.0;isdigit(s[i]) && s[i] !=0;++i){
val2 = 10*val2+s[i]-'0';
}
if(sign2 == -1)
return val/pow(10,val2);
else
return val*pow(10,val2);
}
return val;
}
用c语言编写的atof函数,自己实现的atof()和atoi()代码相关推荐
- c语言编写的每个函数都可以进行独立的编译,2017年辽宁师范大学计算机与信息技术学院836C语言程序设计考研冲刺密押题...
一.选择题 1. 以下叙述中错误的是( ). A.C 语言编写的函数源程序,其文件名后缀可以是.C B.C 语言编写的函数都可以作为一个独立的源程序文件 C.C 语言编写的每个函数都可以进行独立的编译 ...
- 应用c语言编写adams用户自定义函数的研究,C语言编写adams用户自定义函数导入到adams中function_builder.doc...
C语言编写adams用户自定义函数导入到adams中function_builder 应用C语言编写adams用户自定义函数导入到adams中function builder 的整个过程 当前使用软件 ...
- c语言字符串连接作用,C语言 不使用strcat函数实现连接两个字符串功能代码
字符串连接函数: 字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat 函数具有字符串连接功能.下面是用C语言实现不使用是strcat 函数 ...
- R语言 | 编写自己的函数
目录 一.正式编写程序 二.设计第一个函数 三.函数也是一个对象 四.程序代码的简化 五.return()函数的功能 六.省略函数的大括号 七.传递多个参数函数的应用 7.1 设计可传递2个参数的函数 ...
- C语言编写两个函数,分别实现两个整数的最小公倍数和最大公约数
编写两个函数,分别实现两个整数的最大公倍数和最小公约数,在主函数中输入2个整数,调用后输出结果 #include<stdio.h> int main() {int a,b;int gbei ...
- python有趣的代码-分享几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码...
为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几款有趣的Python程序代码,感兴趣的小伙伴可以跟着学习借鉴哦!qq进群:156846986可以获取Python学习 ...
- python有趣小程序-搞几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码!...
原标题:搞几款由"Python"语言编写的"有趣.恶搞.好玩"的程序代码! 为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几 ...
- c语言编写计算ackerman函数的递归函数ack(n,x,y),第六章函数与宏定义实验报告二...
C程序设计实验报告 实验项目: 6.4.2.2. 利用复化梯形公式计算定积分 6.4.2.3. 计算Ackerman函数 6.4.3.1. 编写计算x的y次幂的递归函数getpower(int x,i ...
- c语言atof函数源代码,strtod ( ) 和 atof ( )【C语言库函数源代码】
[C语言库函数源代码] [本程序在Dev C++ 4.9.9.2 下编译通过] /* 这个函数是把浮点数字符串转换为浮点数的函数. 函数将会跳过字符串中的空格字符和不是'+'.'-'.'.'. 数字的 ...
最新文章
- vue ajax highcharts,在vue项目中引入highcharts图表的方法(详解)
- 利用Java自带的MD5加密java.security.MessageDigest;
- spring @import注解使用场景
- keil2c语言使用教程,Keil教程(2)
- 字符设备和块设备的区别
- 思科、华为交换机的一些命令
- bzoj 2528: [Poi2011]Periodicity【kmp+构造】
- 剑指offer面试题29. 顺时针打印矩阵(边界问题)
- 【电路仿真】基于simulink全数字锁相环设计【含Matlab源码 340期】
- Java 访问权限控制:public、private、protected
- python游戏寻路_python模拟实现A*寻路算法
- 迪斯科算法_为什么迪斯科极乐世界如此可重播
- fastlane二开java_Fastlane 使用手册(二)
- 计算机视觉(五)--图像全景拼接原理及实现
- oracle批量将id更新为uuid,oracle批量新增更新数据
- 非线性微分方程的平均法
- 推荐5款热门脑图软件!
- Codeforces 1129 E.Legendary Tree
- WiFi共享精灵,生活好伴侣
- 怎么查看本地DNS缓存?
热门文章
- 电话查询佛山居住证真伪——佛山市、区、镇(街)流管办(局)服务咨询电话一览表...
- yshon对讲机如何调频率_对讲机频率如何设置?
- Java Lambda表达式入门 1
- 【c3p0】报错:Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement...
- 职场上班族可吃零食能消除疲劳
- 读《输赢》与《圈子圈套》有感
- 小程序vant-weapp-商品卡片列表
- 单链表学习之水浒群雄传
- 电影推荐之《 哈利·波特与魔法石》 隐私策略(Privacy policy)
- web前端包括哪些技术?