字符串函数---atof()函数详解及实现(完整版)
来源:互联网 发布:朱文臣 的网络与时 编辑:程序博客网 时间:2024/06/03 17:37
atof()函数
atof():double atof(const char *str );
功 能: 把字符串转换成浮点数
str:要转换的字符串。
返回值:每个函数返回 double 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则返回值为 0.0。
函数说明 :atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回,str字符串可包含正负号、小数点或E(e)来表示指数部分。
#include<iostream>using namespace std;double atof_my(const char *str){double s=0.0;double d=10.0;int jishu=0;bool falg=false;while(*str==' '){str++;}if(*str=='-')//记录数字正负{falg=true;str++;}if(!(*str>='0'&&*str<='9'))//如果一开始非数字则退出,返回0.0return s;while(*str>='0'&&*str<='9'&&*str!='.')//计算小数点前整数部分{s=s*10.0+*str-'0';str++;}if(*str=='.')//以后为小树部分str++;while(*str>='0'&&*str<='9')//计算小数部分{s=s+(*str-'0')/d;d*=10.0;str++;}if(*str=='e'||*str=='E')//考虑科学计数法{str++;if(*str=='+'){str++;while(*str>='0'&&*str<='9'){jishu=jishu*10+*str-'0';str++;}while(jishu>0){s*=10;jishu--;}}if(*str=='-'){str++;while(*str>='0'&&*str<='9'){jishu=jishu*10+*str-'0';str++;}while(jishu>0){s/=10;jishu--;}}} return s*(falg?-1.0:1.0);}int main(){char *s1=" 123.456567567e-10";char *a1=" 123.456567567e-10";char *s2="1234567.235e+10";char *a2="1234567.235e+10";char *s3=" 123.45656\07567e-10";char *a3=" 123.45656\07567e-10";double sum_1=atof_my(s1);double sum1=atof(a1);double sum_2=atof_my(s2);double sum2=atof(a2);double sum_3=atof_my(s3);//遇到'\0'结束double sum3=atof(a3);cout<<"atof_my:"<<sum_1<<endl;cout<<"atof :"<<sum1<<endl;cout<<"atof_my:"<<sum_2<<endl;cout<<"atof :"<<sum2<<endl;cout<<"atof_my:"<<sum_3<<endl;cout<<"atof :"<<sum3<<endl;system("pause");return 0;}运行结果比较图:
3 0
- 字符串函数---atof()函数详解及实现(完整版)
- 字符串函数---atof()函数详解及实现
- 字符串函数---atoi()函数详解及实现(完整版)
- 字符串函数—atoi()、itoa()等详解及实现(完整版)
- atof函数详解
- atof()函数实现
- atof & aoti 函数实现
- atof函数的实现
- java 实现atof函数
- atof函数的实现
- 字符串函数---itoa()函数详解及实现
- atof()函数学习
- c++实现atof()函数,将字符串转换成浮点数
- atof函数实现代码,原理
- atof函数
- atof函数(把字符串转换成浮点数)
- atoi函数和atof函数实现
- atof字符串转换函数应用实例
- 串口通讯控制器实现之----发送模块
- 你所不知的 CSS ::before 和 ::after 伪元素用法
- *线程详解*
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
- ListView怎么处理大量的加载数据;比如有10万条数据,你在ListView怎么处理?
- 字符串函数---atof()函数详解及实现(完整版)
- storm守护进程启动过程中出现卡死现象的解决办法
- 防止UI界面被输入法遮挡(画面随输入法自适应)
- Java半学年要点总结
- 手机摇一摇,摇完想干啥啊?哈哈
- 汉芬感应洁具厂家介绍
- Android Xlistview的源码浅度分析 监听ListView上下滑动 以及是否到顶和底部
- jstl的使用(二):核心标签库之表达式控制标签
- 音乐