#include <stdio.h> /* 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数) 例如:"12.34" 返回12.34 "-123.34" 返回-123.34 函数原型:double my_atof(char *str) {} */ double my_atof(char *str) { double m=0,n=0,x=1; int flag=1; int flag2=0; if(*str=='-') //判断正负 { flag2=1; str++; } while(*str!='\0') { if(*str<'0'|| *str >'9' ) { if(*str =='.') //判断小数点前后 { flag=0; str++; continue; } return 0; } if(flag==1) //小数点前整数部分 { m*=10; m+=*str-'0'; } else //小数部分 { x*=0.1; n+=x*(*str-'0'); } str++; } if(flag2==0) return m+n; else return (m+n)*-1; } int main() { char s[100]={0}; scanf("%s",s); printf("%f\n",my_atof(s)); return 0; }
时间: 2024-12-28 18:09:38