#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<math.h>
double my_atof(char *str)
{
double ret = 0.0;
int sign = 1;
char *pointer;
while(*str != '\0')
{
if(isspace(*str))
{
str ++;
}
else if(*str == '-')
{
sign = -1;
str ++;
}
else if(*str == '+')
{
str ++;
}
else if(*str == '.')
{
pointer = str;
str ++;
}
else if((*str >= '0') && (*str <= '9'))
{
ret = ret * 10.0 + (*str - '0');
str ++;
}
}
ret = sign * ret / pow(10,str-pointer-1);
return ret;
}
int main()
{
double ret;
char arr[100];
scanf("%s",arr);
ret = my_atof(arr);
printf("%f\n",ret);
return 0;
}
编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数,负浮点数)
eg:12.34 返回:12.34
eg:-123.4 返回:-123.4