ソフトウェア開発 C言語

整数をコンマで区切る

戻る


整数をコンマで区切るコードは以下の通り。

#include <stdio.h>

char *comma(unsigned long n)
{
    static char buf[14];

    int len = sprintf(buf, "%lu", n);
    int i = len, j = len + (len - 1) / 3;

    buf[j] = 0;
    while(i < j)
    {
        buf[--j] = buf[--i];
        if(i % 3 == len % 3) {
            buf[--j] = ',';
        }
    }

    return buf;
}

#ifdef UNITTEST
int main(void)
{
    puts(comma(1));
    puts(comma(12));
    puts(comma(123));
    puts(comma(1234));
    puts(comma(12345));
    puts(comma(123456));
    puts(comma(1234567));
    puts(comma(12345678));
    puts(comma(123456789));
    puts(comma(1234567890));

    return 0;
}
#endif

単体テストの実行結果は次の通り。

1
12
123
1,234
12,345
123,456
1,234,567
12,345,678
123,456,789
1,234,567,890

ソース: comma.zip


戻る

©片山博文MZ
katayama.hirofumi.mz@gmail.com

inserted by FC2 system