diff options
Diffstat (limited to 'reference/C/EXAMPLES/strtol.c')
-rw-r--r-- | reference/C/EXAMPLES/strtol.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/reference/C/EXAMPLES/strtol.c b/reference/C/EXAMPLES/strtol.c new file mode 100644 index 0000000..4fbbc16 --- /dev/null +++ b/reference/C/EXAMPLES/strtol.c @@ -0,0 +1,81 @@ +/**************************************************************** + * + * Purpose: To show examples of the strtol function. + * Author: M.J. Leslie + * Date: 06-Nov-94 + * + ****************************************************************/ + +#include <stdlib.h> + +main() +{ + char num[10]; + + /* Test a valid number */ + strcpy(num,"13"); + + printf("%s(Oct) is %i(Dec)\n", num, strtol(num, NULL, 8)); + printf("%s(Dec) is %i(Dec)\n", num, strtol(num, NULL, 10)); + printf("%s(hex) is %i(Dec)\n", num, strtol(num, NULL, 16)); + + puts("----------------------------------"); + + /* Test a slightly valid number + * Returns the same results as + * above. */ + strcpy(num, "13hzcd"); + + printf("%s(Oct) is %i(Dec)\n", num, strtol(num, NULL, 8)); + printf("%s(Dec) is %i(Dec)\n", num, strtol(num, NULL, 10)); + printf("%s(hex) is %i(Dec)\n", num, strtol(num, NULL, 16)); + + puts("----------------------------------"); + + /* Test an invalid number + * Returns ZERO */ + strcpy(num, "hzcd"); + + printf("%s(Oct) is %i(Dec)\n", num, strtol(num, NULL, 8)); + printf("%s(Dec) is %i(Dec)\n", num, strtol(num, NULL, 10)); + printf("%s(hex) is %i(Dec)\n", num, strtol(num, NULL, 16)); + + + puts("----------------------------------"); + + /* Test 0 base. + * This will look at the number + * and decide the base for its self! + */ + strcpy(num, "13"); + printf("%s is %i(Dec)\n", num, strtol(num, NULL, 0)); + + strcpy(num, "013"); + printf("%s is %i(Dec)\n", num, strtol(num, NULL, 0)); + + strcpy(num, "0x13"); + printf("%s is %i(Dec)\n", num, strtol(num, NULL, 0)); + +} + +/**************************************************************** + * + * Results of the program: + * + * 13(Oct) is 11(Dec) + * 13(Dec) is 13(Dec) + * 13(hex) is 19(Dec) + * ---------------------------------- + * 13hzcd(Oct) is 11(Dec) + * 13hzcd(Dec) is 13(Dec) + * 13hzcd(hex) is 19(Dec) + * ---------------------------------- + * hzcd(Oct) is 0(Dec) + * hzcd(Dec) is 0(Dec) + * hzcd(hex) is 0(Dec) + * ---------------------------------- + * 13 is 13(Dec) + * 013 is 11(Dec) + * 0x13 is 19(Dec) + * + ****************************************************************/ |