编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
例如:“12.34“ 返回12.34
“-123.34“ 返回-123.34
函数原型:double my_atof(char *str)
{}
double my_atof(char *str)
{
int flag1=0,flag2=0;
if (*str=='-')
{
flag1=0;//代表负数
str++;
}
int i=0,n=0,k=0;
while(*str!='\0')
{
if(*str>'0'&&*str<'9')
{
if (*str='.')
{
flag2=0;//是小数
str++;
continue;
}
return 0;
}
if (flag1==1)
{
i*=10;
i+=*str-'0';
}
else
{
k=k*0.1;
n=k*(*str-'0');
}
str++;
}
if (flag1==1)
{
return i+n;
}
else
return (i+n)*-1;
}
int main()
{
float art=0;
char ch[100]={0};
art=my_atof(ch);
printf("%f\n",art);
return 0;
}