double my_atof(char *str)

来源:互联网 发布:360搜索引擎推广 知乎 编辑:程序博客网 时间:2024/05/18 17:05

编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)

例如:“12.34“   返回12.34“ - 123.34“ 返回 - 123.34函数原型:double my_atof(char *str)

#include<stdio.h>#include<ctype.h>#include<cmath>double my_atof(char *str){double ret = 0.0;int sign = 1;char *point;while (*str != '\0'){if (isspace(*str))//isspace判断空格str++;else if (*str == '-'){sign = -1;str++;}else if (*str == '+')str++;else if (*str == '.'){point = str;str++;}else if ((*str >= '0') && (*str <= '9')){ret=ret * 10.0 + (*str - '0');//字符和数字之间差了字符0str++;}}ret = sign*ret / pow(10,str - point - 1);return ret;}int main(){double ret;char arr[100];scanf("%s", arr);ret = my_atof(arr);printf("%f\n", ret);return 0;}


0 0
原创粉丝点击