1 #include <stdlib.h> 2 #include <stdio.h> 3 4 #include "test_helpers.h" 5 6 int main(void) { 7 char* endptr = 0; 8 double d; 9 10 char* inputs[] = { 11 "a 1 hello", " 1 hello", "1 hello 2", 12 "10.123", "010.123", "-5.3", 13 "0x10.123", "0x1.23", "0x3.21", 14 15 "1e5", "1e+5", "1e-5", 16 "1e5 ", "1e+5 ", "1e-5 ", 17 18 "1e10", "1eXXXX", "1e", "1e ", 19 "1e+10", "1e+XXXX", "1e+", "1e+ ", 20 "1e-10", "1e-XXXX", "1e-", "1e- ", 21 22 "-1e5", "-1e+5", "-1e-5", 23 "-1e5 ", "-1e+5 ", "-1e-5 ", 24 25 "-1e10", "-1eXXXX", "-1e", "-1e ", 26 "-1e+10", "-1e+XXXX", "-1e+", "-1e+ ", 27 "-1e-10", "-1e-XXXX", "-1e-", "-1e- ", 28 29 "12.34e5", "12.34e+5", "12.34e-5", 30 "12.34e5 ", "12.34e+5 ", "12.34e-5 ", 31 32 "12.34e10", "12.34eXXXX", "12.34e", "12.34e ", 33 "12.34e+10", "12.34e+XXXX", "12.34e+", "12.34e+ ", 34 "12.34e-10", "12.34e-XXXX", "12.34e-", "12.34e- ", 35 36 "-12.34e5", "-12.34e+5", "-12.34e-5", 37 "-12.34e5 ", "-12.34e+5 ", "-12.34e-5 ", 38 39 "-12.34e10", "-12.34eXXXX", "-12.34e", "-12.34e ", 40 "-12.34e+10", "-12.34e+XXXX", "-12.34e+", "-12.34e+ ", 41 "-12.34e-10", "-12.34e-XXXX", "-12.34e-", "-12.34e- ", 42 43 "0x0.3p10", "-0x0.3p10", "0x0.3p-5", "-0x0.3p-5", 44 "0x1.4p3", "0x1.4p-3", "-0x1.4p3", "-0x1.4p-3", 45 "0x10.1p0", "0x10.1p-0", "-0x10.1p0", "-0x10.1p-0", 46 47 "0.5e0", "0.5e1", "0.5e2", "0.5e3", "0.5e4", 48 "0.5e5", "0.5e6", "0.5e7", "0.5e8", "0.5e9", 49 "0.5e10", "0.5e11", "0.5e12", "0.5e13", "0.5e14", 50 "0.5e15", "0.5e16", "0.5e17", "0.5e18", "0.5e19", 51 "0.5e20", "0.5e21", "0.5e22", "0.5e23", "0.5e24", 52 "0.5e25", "0.5e26", "0.5e27", "0.5e28", "0.5e29", 53 "0.5e30", "0.5e31", "0.5e32", "0.5e33", "0.5e34", 54 "0.5e35", "0.5e36", "0.5e37", "0.5e38", 55 56 "-0.5e0", "-0.5e1", "-0.5e2", "-0.5e3", "-0.5e4", 57 "-0.5e5", "-0.5e6", "-0.5e7", "-0.5e8", "-0.5e9", 58 "-0.5e10", "-0.5e11", "-0.5e12", "-0.5e13", "-0.5e14", 59 "-0.5e15", "-0.5e16", "-0.5e17", "-0.5e18", "-0.5e19", 60 "-0.5e20", "-0.5e21", "-0.5e22", "-0.5e23", "-0.5e24", 61 "-0.5e25", "-0.5e26", "-0.5e27", "-0.5e28", "-0.5e29", 62 "-0.5e30", "-0.5e31", "-0.5e32", "-0.5e33", "-0.5e34", 63 "-0.5e35", "-0.5e36", "-0.5e37", "-0.5e38", 64 }; 65 for (int i = 0; i < sizeof(inputs) / sizeof(char*); i += 1) { 66 d = strtod(inputs[i], &endptr); 67 printf("d: %f Endptr: \"%s\"\n", d, endptr); 68 } 69 } 70