math.hで小一時間ハマってしまった。 演習 4-2 atofを拡張して,123.45e-6のような指数表現を扱えるようにする問題。 #include <math.h> double atof_copy(char s[]) { double value = 0, power = 1; int i,sign, e_sign, e = 0; for (i = 0; isspace(s[i]); i++) ; sign = (s[i] == '-') ? -1 : 1; if (s[i] == '+' || s[i] == '-') i++; for (; isdigit(s[i]); i++) value = value * 10 + s[i] - '0'; if (s[i] == '.') i++; for (; isdigit(s[i]); i++) { value = value *