闲来无事,玩玩基本之基本!c/c++之 string或者char*转换为double的 atof !

最近没什么事,看看atof这个基本函数的用处,当然,它的功能是把字符串转换为数字!

可是,你们仔细试过这个要被转换的字符串有什么要求吗?。

只要细心的人肯定会有大发现。如下

  

还得,在那么下面呢

对,结果意料之中:0.1

这行代码会输出什么:很简单   1.3

这一行呢:大概加估计1.3吧,不错确实是1.3

好让我们在掐面插入几个空格看

哎呀,没想到还是1.3

这一行呢:这下糊涂了,这样不会出错吗?我告诉你,不会,因为atof有容错处理

它会首先判断在你要转换的字符串里面能不能找到数字.找不到,则返回0.

那么这一行呢:我想有点悟性的人,肯定会回答1.3,不错你答得非常对!就是1.3

好了,这里您看出点什么苗头没?

好,试试下面,看看你错了没

你的结果是什么,我想你不会是写1.3吧,这下我告诉你结果是0.

好了,我们可以得出结论了

atof的基本实现算法是

第一步先去掉参数开始的连续多余空格,不管有多少个。

第二步

先看接收的参数第一个是不是数字或小数点,若不是,不找了,返回

0;是再往下查找,找到数字,取出来,找第一个".",取出来,而后找到不是数字就

的第一个字符就停了

在将取出来的字串以小数点为分界,分别进行处理。之后再返回结果!

怎么样 atof够用吧。

这个用途可以派上什么用场,自个遐想吧!

 

估计是这样吧,不知道对不对。

本人以上纯属没事乱想,请不要真以为atof就是按照上面的方法实现的! 其实我也不敢肯定!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值