atof() 函数
函数声明: double atof(const char *str );
功 能: 把字符串转换成浮点数
str:要转换的字符串。
函数返回:返回把字符串str开始部分的数字(和符号)字符转换为 double类型的值,跳过开始的空白字符,遇到第一个非数字 字符时结束转换,如果未发现数字字符(未能转化)则返回0;
个人认为:my_atof() 函数实现的核心是围绕是否有小数点展开的 即在字符 e或E 之前的实数
实现:
double my_atof(const char * str)
{
int num=0; //用于记录数字字符的个数。
int flag=0; //标记小数点的。flag==0时是没小数点的。
int s=1; //符号位s . 第一个为'-'时,符号为负,s=-1.
int sE=1; //字符 E或e 后第一个符号位sE 。当E或e后面第一个为'-'时,sE=-1.
unsigned y=0; //E或e 后面的整数值.(即y次方)
double item=10.0; //小数点后面sum的项;
double sum=0.0; //浮点数值.
char ch[]="0123456789-+."; //第一个非空白字符 浮点数字符 的组成。
while(*str != '\0'