fork download
  1. #include <stdio.h>
  2. #include <errno.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. int main(void) {
  7. char *end;
  8. printf("\" 999999999999999999999999999999999999999999999\" em decimal --> %ld - ", strtol(" 999999999999999999999999999999999999999999999", &end, 10));
  9. printf("Erro: %s\n", strerror(errno));
  10. printf("\"1010\" em binário --> %ld\n", strtol("1010", NULL, 2)); //sem tratamento de erro
  11. printf("\"12\" em octal --> %ld\n", strtol("12", NULL, 8));
  12. printf("\"A\" em hex --> %ld\n", strtol("A", NULL, 16));
  13. printf("\"junk\" em base 36 --> %ld\n", strtol("junk", NULL, 36));
  14. printf("\"012\" detecção --> %ld\n", strtol("012", NULL, 0));
  15. printf("\"0xA\" detecção --> %ld\n", strtol("0xA", NULL, 0));
  16. printf("\"junk\" detecção --> %ld - ", strtol("junk", &end, 0));
  17. printf("Erro: %s\n", strerror(errno));
  18. }
  19.  
  20. //http://pt.stackoverflow.com/q/185345/101
Success #stdin #stdout 0s 4476KB
stdin
Standard input is empty
stdout
" 999999999999999999999999999999999999999999999" em decimal --> 9223372036854775807 - Erro: Numerical result out of range
"1010" em binário --> 10
"12" em octal     --> 10
"A"  em hex       --> 10
"junk" em base 36 --> 926192
"012" detecção    --> 10
"0xA" detecção    --> 10
"junk" detecção   -->  0 - Erro: Numerical result out of range