【C語言】編寫一個函式,將一個數字字串轉換成這個字串對應的數字(包括正浮點數、負浮點數)
阿新 • • 發佈:2019-02-16
//編寫一個函式,將一個數字字串轉換成這個字串對應的數字(包括正浮點數、負浮點數) //例如:“12.34“ 返回12.34. " -12.34" 返回12.34 #include<stdio.h> #include<math.h> #include<assert.h> double my_atof(char *str) { int flag=0; int count = 0; int ret = 1; double sum = 0; assert(NULL!=str); while(*str != '\0') { if(*str == '-') { ret = -1; str++; } if(*str == '.') { flag = 1 ; str ++; } if(*str >= '0' && *str <= '9') { sum = sum*10 + (*str - '0'); if(flag == 1) { count ++; } } str++; } sum = sum /pow(10,count); return ret*sum; } int main() { char p[]=" -52.36 "; printf("%f\n",my_atof(p)); return 0; }
<img src="https://img-blog.csdn.net/20150403140644994?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZG91ZG91d2ExMjM0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />