Changed permissions of source files.
[C-Programming-Examples.git] / ex_4-2.c
blobff8d1fcfec6dd2529d234eef53bed8b5890bc3b4
1 #include <stdio.h>
2 #include <ctype.h>
3 /*
5 Add support for scientific notation.
7 123.45e-6
8 123.45E6
9 -123.45e56
13 double atof(char s[])
15 double val, power;
16 int i, sign;
17 for(i=0; isspace(s[i]); i++) /* skip spaces */
20 sign = (s[i] == '-') ? -1 : 1; // mark sign for number
21 if(s[i] == '+' || s[i] == '-') // skip over signs
22 i++;
23 for(val = 0.0; isdigit(s[i]); i++)
24 val = 10.0 * val + (s[i] - '0');
25 if(s[i] == '.') // skip over decimals
26 i++;
28 for(power = 1.0; isdigit(s[i]); i++)
30 val = 10.0 * val + (s[i] - '0');
31 power *= 10.0;
33 return sign * val / power;
36 int main()
38 char s[] = "-10928473.25";
39 double ans = atof(s);
40 printf("%f\n", ans);
41 return 0;