Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void convert(long, char []);
  4.  
  5. void convert(long num, char str[]) {
  6. int minus = 0, i = 0, j = 0;
  7. char table[] = "0123456789";
  8. char tmp;
  9.  
  10. if (num < 0) {
  11. minus = 1;
  12. num = -num;
  13. }
  14. do {
  15. str[j++] = table[num % 10]; /* 数値の下位から順に文字に変換 */
  16. num /= 10;
  17. i++;
  18. if (i % 3 == 0 && num != 0) {
  19. str[j++] = ',';
  20. }
  21. } while (num != 0);
  22. if (minus != 0) {
  23. str[j++] = '-';
  24. }
  25. str[j--] = '\0';
  26. for (i = 0; i < j; i++, j--) { /* 順序を逆にする。 */
  27. tmp = str[i];
  28. str[i] = str[j];
  29. str[j] = tmp;
  30. }
  31. }
  32.  
  33. int main(void) {
  34. long nums[] = {1234567, -57482, 63, -999999};
  35. char str[BUFSIZ];
  36. int i, size = sizeof(nums) / sizeof(nums[0]);
  37. for (i = 0; i < size; i++) {
  38. convert(nums[i], str);
  39. printf("%s\n", str);
  40. }
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement