從0開始《十》 atof 函式的簡單實現

2021-07-06 04:40:47 字數 2043 閱讀 7551

程式一:atof函式的簡單實現

解法思路很簡單,就不多說

double atof(char s)

return sign * val / power;

}

程式二:對atof函式進行擴充,使它可以處理形如123.45e-6的科學表示法,其中,浮點數後面可能會緊跟乙個 e或e一級乙個指數(可能有正負號)

解法一:順著上體接著遍歷就好

#include #include #include double myatof(char s)  

if (toupper(s[i++]) == 'e')

/*這裡換為int vale怎麼樣*/

vale = pow(10,exp);

if (signe == 1)

return sign * vale * val / power;

else

return sign * val / power / vale;

} else

return sign * val / power;

}

解法二:思路也簡單,看看答案的解法,學習學習別人的寫法及測試就好了

#include #include #include #include #include int my_atof(char *string, double *pnumber)

if (string == 0)

retval = zero;

num = string;

/* advance past white space. */

while (isspace(*num))

num++;

/* check for sign. */

if (*num == '+')

num++;

else if (*num == '-')

/* calculate the integer part. */

while (isdigit(*num))

/* calculate the fractional part. */

if (*num == '.')

}/* if this is not a number, return error condition. */

if (!found_digits)

/* if all digits of integer & fractional part are 0, return 0.0 */

if (retval == zero)

/* process the exponent (if any) */

if ((*num == 'e') || (*num == 'e'))

/* what if the exponent is empty? return the current result. */

if (!isdigit(*num))

/* convert char exponent to number <= 2 billion. */

while (isdigit(*num) && (exponent < long_max / 10))

/* compensate for the exponent. */

if (neg_exponent)

else

retval *= one_tenth;

} else

for (index = 1; index <= exponent && !get_out; index++)

else

retval *= ten;}}

if (is_negative)

retval = -retval;

*pnumber = retval;

return (1);

}double atof(char *s)

return d;

}char *strings = ;

int main(void)

從0開始《九》 字串相關 grep函式的簡單實現

程式一 grep函式的簡單實現 思路 先看流程,其中可用前面的getline實現未處理的行,然後編寫函式strindex s,t 實現該目標,至於列印部分使用printf函式即可 while 還有未處理的行 include define maxline 1000 int getline char l...

從0開始的Python學習007函式 函式柯里化

簡介 函式是可以重用的程式段。首先這段 有乙個名字,然後你可以在你的程式的任何地方使用這個名稱來呼叫這個程式段。這個就是函式呼叫,在之前的學習中我們已經使用了很多的內建函式像type range 通過關鍵字def定義函式 def 函式名 引數 塊乙個簡單的函式 def sayhello print ...

從0開始學Python Python的基本語法

一 資料型別 1.字串 string 不可變 1 合併字串 合併字串 2 常用內建函式 python3 字串 菜鳥教程 www.runoob.com 3 格式化字串 格式化字串 使用變數格式化字串分 2.數值 number 不可變 1 整型 int 2 浮點型 float 3.元祖 tuple 不可...