例如:“12.34“ 返回12.34
“-123.34“ 返回-123.34
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
double my_atof(char *str)
{
int sign = 1;
int j = 0;
double i = 0;
int count = 0;
while(*str != '\0')
{
if(*str=='-')
{
sign=(-1)*sign;
}
if(*str > '0'&& *str < '9')
{
if(j == 1)
{
count++;
}
i = i * 10 + *str - 48;
}
if(*str=='.')
{
j=1;
}
str++;
}
i = sign * i* pow(0.1,count);
return i;
}
void main()
{ double b = 0;
char *a=NULL;
a = (char*)malloc(100*sizeof(char));
scanf("%s",a);
b = my_atof(a);
printf("b = %f\n",b);
}