编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
例如:“12.34“ 返回12.34
“-123.34“返回-123.34
函数原型:double my_atof(char *str)
#include <stdio.h> #include <math.h> #include <ctype.h> double my_atof(char *str) { int flag = 1; double value = 0; int count = 0; while(isspace(*str)) { str++; }//跳过所有空格 if(*str == '-') { flag = -1; str++; } if(*str == '+') { str++; } //isdigtil//判断正负 while(*str != '\0') { if(*str == '.') { count++; str++; continue; }//判断小数点 if(count) { count *=10; }//count是为了记住小数点移动的次数 value = value * 10 + (*str -'0');//先乘以10的count次方的 str++; } value = value / count;//再除掉还原 return flag * (value); } int main() { char *p = " -12.34"; printf("%f\n",my_atof(p)); }
编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
例如:“12“ 返回12
“-123“返回-123
函数原型:int my_atof(char *str)
原文:http://blog.csdn.net/cherry_ermao/article/details/44178953