[PR]

3桁毎にカンマ ',' で区切られた整数文字列を得る

戻る

 3桁毎にカンマ ',' で区切られた整数文字列を得る関数を作る。

//*********************************************************
// 整数 n を、3桁毎にカンマ(,)で区切られた10進文字列に変換します。
//*********************************************************
char *IntToCommaSeparateString( char *str, int n )
{
	int           i = 0; // 書き込んだ桁数
	char         *p = str;
	unsigned int  u = abs(n);

	do // while( 0 != u );
	{
		*p++ = "0123456789"[u%10];
		u = u / 10;
		i++;

		if ( (0!=u) && (0==(i%3)) ) *p++ = ',';
	}while( 0 != u );

	if ( n < 0 ) *p++ = '-';
	*p = '\0';

	strrev( str );
	return str;
}//IntToCommaSeparateString

使用例

/* 関数 IntToCommaSeparateString() の使用例です。 */
int main( void )
{
	char str[20];

	int  n = 1;
	{for( int i = 0; i < sizeof(str); ++i )
	{
		IntToCommaSeparateString( str, n );
		printf( "%*s\n", sizeof(str), str );

		n = -( (0==(i%2)) ? n : (n * 10) );
	}}

	IntToCommaSeparateString( str, 0 );
	printf( "%*s\n", sizeof(str), str );
	IntToCommaSeparateString( str, INT_MIN );
	printf( "%*s\n", sizeof(str), str );
	IntToCommaSeparateString( str, INT_MAX );
	printf( "%*s\n", sizeof(str), str );
	return 0;
}//main

実行結果

                   1
                  -1
                  10
                 -10
                 100
                -100
               1,000
              -1,000
              10,000
             -10,000
             100,000
            -100,000
           1,000,000
          -1,000,000
          10,000,000
         -10,000,000
         100,000,000
        -100,000,000
       1,000,000,000
      -1,000,000,000
                   0
      -2,147,483,648
       2,147,483,647


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
『新妻LOVELY×CATION』を応援しています!