# 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()代码相关推荐

  1. c语言编写的每个函数都可以进行独立的编译,2017年辽宁师范大学计算机与信息技术学院836C语言程序设计考研冲刺密押题...

    一.选择题 1. 以下叙述中错误的是( ). A.C 语言编写的函数源程序,其文件名后缀可以是.C B.C 语言编写的函数都可以作为一个独立的源程序文件 C.C 语言编写的每个函数都可以进行独立的编译 ...

  2. 应用c语言编写adams用户自定义函数的研究,C语言编写adams用户自定义函数导入到adams中function_builder.doc...

    C语言编写adams用户自定义函数导入到adams中function_builder 应用C语言编写adams用户自定义函数导入到adams中function builder 的整个过程 当前使用软件 ...

  3. c语言字符串连接作用,C语言 不使用strcat函数实现连接两个字符串功能代码

    字符串连接函数: 字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat  函数具有字符串连接功能.下面是用C语言实现不使用是strcat 函数 ...

  4. R语言 | 编写自己的函数

    目录 一.正式编写程序 二.设计第一个函数 三.函数也是一个对象 四.程序代码的简化 五.return()函数的功能 六.省略函数的大括号 七.传递多个参数函数的应用 7.1 设计可传递2个参数的函数 ...

  5. C语言编写两个函数,分别实现两个整数的最小公倍数和最大公约数

    编写两个函数,分别实现两个整数的最大公倍数和最小公约数,在主函数中输入2个整数,调用后输出结果 #include<stdio.h> int main() {int a,b;int gbei ...

  6. python有趣的代码-分享几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码...

    为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几款有趣的Python程序代码,感兴趣的小伙伴可以跟着学习借鉴哦!qq进群:156846986可以获取Python学习 ...

  7. python有趣小程序-搞几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码!...

    原标题:搞几款由"Python"语言编写的"有趣.恶搞.好玩"的程序代码! 为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几 ...

  8. 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 ...

  9. c语言atof函数源代码,strtod ( ) 和 atof ( )【C语言库函数源代码】

    [C语言库函数源代码] [本程序在Dev C++ 4.9.9.2 下编译通过] /* 这个函数是把浮点数字符串转换为浮点数的函数. 函数将会跳过字符串中的空格字符和不是'+'.'-'.'.'. 数字的 ...

最新文章

  1. vue ajax highcharts,在vue项目中引入highcharts图表的方法(详解)
  2. 利用Java自带的MD5加密java.security.MessageDigest;
  3. spring @import注解使用场景
  4. keil2c语言使用教程,Keil教程(2)
  5. 字符设备和块设备的区别
  6. 思科、华为交换机的一些命令
  7. bzoj 2528: [Poi2011]Periodicity【kmp+构造】
  8. 剑指offer面试题29. 顺时针打印矩阵(边界问题)
  9. 【电路仿真】基于simulink全数字锁相环设计【含Matlab源码 340期】
  10. Java 访问权限控制:public、private、protected
  11. python游戏寻路_python模拟实现A*寻路算法
  12. 迪斯科算法_为什么迪斯科极乐世界如此可重播
  13. fastlane二开java_Fastlane 使用手册(二)
  14. 计算机视觉(五)--图像全景拼接原理及实现
  15. oracle批量将id更新为uuid,oracle批量新增更新数据
  16. 非线性微分方程的平均法
  17. 推荐5款热门脑图软件!
  18. Codeforces 1129 E.Legendary Tree
  19. WiFi共享精灵,生活好伴侣
  20. 怎么查看本地DNS缓存?

热门文章

  1. 电话查询佛山居住证真伪——佛山市、区、镇(街)流管办(局)服务咨询电话一览表...
  2. yshon对讲机如何调频率_对讲机频率如何设置?
  3. Java Lambda表达式入门 1
  4. 【c3p0】报错:Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement...
  5. 职场上班族可吃零食能消除疲劳
  6. 读《输赢》与《圈子圈套》有感
  7. 小程序vant-weapp-商品卡片列表
  8. 单链表学习之水浒群雄传
  9. 电影推荐之《 哈利·波特与魔法石》 隐私策略(Privacy policy)
  10. web前端包括哪些技术?