//编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
//例如:“12.34“ 返回12.34. " -12.34" 返回12.34
#include<stdio.h>
#include<math.h>
#include<assert.h>
double my_atof(char *str)
{
int flag=0;
int count = 0;
int ret = 1;
double sum = 0;
assert(NULL!=str);
while(*str != '\0')
{
if(*str == '-')
{
ret = -1;
str++;
}
if(*str == '.')
{
flag = 1 ;
str ++;
}
if(*str >= '0' && *str <= '9')
{
sum = sum*10 + (*str - '0');
if(flag == 1)
{
count ++;
}
}
str++;
}
sum = sum /pow(10,count);
return ret*sum;
}
int main()
{
char p[]=" -52.36 ";
printf("%f\n",my_atof(p));
return 0;
}
<img src="https://img-blog.csdn.net/20150403140644994?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZG91ZG91d2ExMjM0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />