Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void convert(long, char []);
- void convert(long num, char str[]) {
- int minus = 0, i = 0, j = 0;
- char table[] = "0123456789";
- char tmp;
- if (num < 0) {
- minus = 1;
- num = -num;
- }
- do {
- str[j++] = table[num % 10]; /* 数値の下位から順に文字に変換 */
- num /= 10;
- i++;
- if (i % 3 == 0 && num != 0) {
- str[j++] = ',';
- }
- } while (num != 0);
- if (minus != 0) {
- str[j++] = '-';
- }
- str[j--] = '\0';
- for (i = 0; i < j; i++, j--) { /* 順序を逆にする。 */
- tmp = str[i];
- str[i] = str[j];
- str[j] = tmp;
- }
- }
- int main(void) {
- long nums[] = {1234567, -57482, 63, -999999};
- char str[BUFSIZ];
- int i, size = sizeof(nums) / sizeof(nums[0]);
- for (i = 0; i < size; i++) {
- convert(nums[i], str);
- printf("%s\n", str);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement