編寫一個函數,將一個數字字符串轉換成這個字符串對應的數字(包括正浮點數、負浮點數);函數原型:double my_atof(char *str)

<strong><span style="font-size:24px;">
#include<stdio.h>  
#include<math.h>  
double my_atof(char *str)  
{      
    int flag=0;   
    int count = 0;  
    int ret = 1;  
    double sum = 0;  
    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[]={" - 1  1 2 .3 5 4 6 "};    
   printf("%f\n",my_atof(p));  
   return 0;  
}</span></strong>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章