Guest User

Untitled

a guest
Jul 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char **argv) {
  5. if (argc < 2) {
  6. return -1;
  7. }
  8.  
  9. int in = atoi(argv[1]);
  10.  
  11. if (in == 0) {
  12. printf("0\n");
  13. return 0;
  14. }
  15.  
  16. int negative = in < 0 ? 1 : 0;
  17. printf("negative: %d\n", negative);
  18.  
  19. int digits = 0;
  20.  
  21. int tmp = in;
  22.  
  23. while (tmp != 0) {
  24. tmp /= 10;
  25. digits++;
  26. }
  27. printf("digits: %d\n", digits);
  28.  
  29. char out[digits + negative + 1];
  30. out[0] = negative ? '-' : 0;
  31. out[sizeof(out)-1] = '\0';
  32.  
  33. tmp = in;
  34. int i;
  35.  
  36. for (i = negative ? digits : digits-1 ; i >= negative ? 1 : 0; i--) {
  37. out[i] = negative ? (tmp % 10) * -1 + 48 : (tmp % 10) + 48;
  38. tmp /= 10;
  39. }
  40.  
  41. printf("%s\n", out);
  42.  
  43. return 0;
  44. }
Add Comment
Please, Sign In to add comment