///////////////////////////////////////////////////////////////////////////////
//
// FileName : atof_ftoa.cpp
// Author : Jimmy Han
// Date : 2014/07/07 17:09 v1
// : 2014/07/12 21:40 v2
//
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h> // for print
#include <ctype.h> // for isspace, isdigit
#define ARRAY_MAX 20 /*
*atof 将字符串数组转换为double数字
*char s[] 输入字符数组
*double 输出浮点型
*/
double atof(char s[])
{
int i, sign;
int rate = 1;
bool bDot = false;
double ret; //skip the space
for(i = 0; isspace(s[i]); i++)
; //get the sign
sign = s[i] == '-' ? -1 : 1; //store the sign
if(s[i] == '-' || s[i] == '+')
i++; for(ret = 0; s[i] != '\0'; i++)
{
if(s[i] == '.'){
bDot = true;
i++;
}
//if interger part
if(!bDot)
ret = 10*ret + s[i] - '0';
//if dot part
else{
rate*=10;
//has to be explicit double cast, or int/int will not be right
ret = ret + (double)((s[i] - '0'))/rate;
}
}
return sign*ret;
} /*
*ftoa transfer double to char array
*dnum input double number
*str input char array
*len input double length
*/ char *ftoa(double dnum,char *str,int len)
{
int arrayNum[ARRAY_MAX];
int pointPos=1;//the position of point
int index=0;
int i=0;
if(dnum > 0)
{
//have only one bit for interger part
while(dnum >= 10.0)
{
pointPos++;
dnum/=10;
} //convert to an integer array firstly
for(i=0;i<len;i++)
{
if(i == pointPos)
{
//'0'-2 represent '.'
arrayNum[i]=-2;
//next for loop
continue;
}
//get the integer part
int num=dnum;
arrayNum[i]=num;
dnum-=num;
dnum*=10;
} //convert the integer to string
for(i=0;i<len;i++)
{
str[i]=arrayNum[i]+'0';
}
str[len]='\0';
}
return str;
} int main()
{
//atof test
char s[] = "-92.5";
double result = atof(s);
printf("char=%s, double=%f\n",s, result); //ftoa test
double flt=34.4324;
char str[ARRAY_MAX];
char *ret=ftoa(flt,str,7);
printf("double=%f,char=%s\n",flt,ret); return 0;
}

  

面试题目-atof与ftoa的更多相关文章

  1. HTML/CS3相关面试题目

    一.HTML/CS3基本面试题目. 1. 常用那几种浏览器测试? 1.1浏览器:IE,Chrome(谷歌),FireFox(火狐),Safari(苹果计算机的最新操作系统Mac OS X中的浏览器,使 ...

  2. PHP面试题目搜集

    搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记. 曾经看过数据结构.设计模式.HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘 ...

  3. 总结CSS面试题目的考察点及常见布局问题整理

    整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...

  4. 【转】asp.net c# 网上搜集面试题目大全(附答案)

    asp.net c# 网上搜集面试题目大全(附答案) http://www.cnblogs.com/hndy/articles/2234188.html

  5. 2016年Web前端面试题目汇总

    转载: 2016年Web前端面试题目汇总 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢 ...

  6. 33条C#、.Net经典面试题目及答案

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...

  7. 33条C#、.Net经典面试题目及答案[zt]

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如“.NET中类和结构的区别”.“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希 ...

  8. C/C++ 笔试、面试题目大汇总 转

    C/C++ 笔试.面试题目大汇总 这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 1.求下面函数的返回值( ...

  9. Android面试题目及其答案

    转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...

随机推荐

  1. (一)linux常见命令

    一.chmod 修改文件权限 每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读.写和执行权限:与属主同组的用户的读.写和执行权限:系统中其他用户的读.写和执行权限.横线代表空许可. ...

  2. iOS开发之 几本书

    <object_c 编程之道书> <iOS 7 UI Transition Guide> iOS开发指南:从零基础到App Store上架[国内第一本iOS架构设计图书,涵盖i ...

  3. goLang文件遍历

    package main import (  "fmt"  "io/ioutil"  "os"  "path/filepath&q ...

  4. Spring MVC 之输入验证(六)

    Spring MVC 验证主要还是用的是hibernate的验证.so需要添加以下的jar包: 1. hibernate-validator-5.2.2.Final.jar 2.hibernate-v ...

  5. OpenCV C++ 计算文件夹中对象文件数目及批量处理后保存到txt文件

    //采用windows控制台实现计算文件夹中对象总数以及批量读取对象 //#include <afx.h> //和windows.h是一样的作用 #include <opencv2/ ...

  6. phprpc 使用实例(例实没错却不能执行)函数冲突gzdecode

    PHPRPC 是一个轻型的.安全的.跨网际的.跨语言的.跨平台的.跨环境的.跨域的.支持复杂对象传输的.支持引用参数传递的.支持内容输出重定向的.支持分级错误处理的.支持会话的.面向服务的高性能远程过 ...

  7. 各种U启网启什么的都是浮云

    对于支持BIOS的电脑,优盘启动,网络启动的各种方案感觉都是浮云,从硬盘启动PE进行维护才是最可靠的.不点在开发wee的过程中给了我们很多维护的灵感,不用费劲地折腾fbinst/U+/量产/PXE/I ...

  8. SAP 物料主数据屏幕增强

    1. 用事务代码OMT3C,(或者用SPRO进入,后勤-常规->物料主记录->配置物料主记录->创建定制子屏幕的程序)创建函数功能组,如ZMGD1,然后保存. 2. 用事务代码SE8 ...

  9. Java客户端通过Http发送POST请求上传文件到web服务器

    http://www.cnblogs.com/WilliamJiang/archive/2012/04/29/2475883.html 1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.n ...

  10. 谈谈HttpUrlConnection与DefaultHttpClient一些区别

    HttpClient封装的很庞大,很复杂,你必须按照,他封装的思想去使用它,导致它很不灵活. 相比之下,HttpUrlConnection很轻巧,很方便,很灵活. HttpClient对于数据上面的封 ...