整数を文字列に変換する

_itoa、_i64toa、_ui64toa、_itow、_i64tow、_ui64tow

【書式】

char *_itoa(
   int value,
   char *string,
   int radix
);
char *_i64toa(
   __int64 value,
   char *string,
   int radix
);
char * _ui64toa(
   unsigned _int64 value,
   char *string,
   int radix
);
wchar_t * _itow(
   int value,
   wchar_t *string,
   int radix
);
wchar_t * _i64tow(
   __int64 value,
   wchar_t *string,
   int radix
);
wchar_t * _ui64tow(
   unsigned __int64 value,
   wchar_t *string,
   int radix
);

【引数】

value 変換される数値
string 結果の文字列
radix value の基数 (2 ~ 36 の範囲内)

【戻り値】

成功時 string へのポインタ
失敗時 エラーの戻り値はなし

【機能】

_itoa、_i64toa、_ui64toaの各関数は、引数valueで指定された数値をnullで終わる文字列に変換し、 結果(_itoaの場合は33文字まで、_i64toaと_ui64toaの場合は65文字まで)をstringに格納します。 radixが10でvalueが負の場合、格納された文字列の最初の文字はマイナス記号(-)です。 _itow、_i64tow、_ui64towは、それぞれ_itoa、_i64toa、_ui64toaのワイド文字バージョンです。
バッファ オーバーランを回避するには、変換された数字と文字列の末尾のnull文字や 符号を格納するために必要なサイズのstringバッファを確保しておいてください。

【インクルードファイル】

(win系のみ)_itoa、_i64toa、_ui64toa、_itow、_i64tow、_ui64tow関数全て stdlib.h

【必要追加ライブラリ】

なし

使用例

〈サンプルプログラム〉

#include <stdlib.h>

int main(void)
{
    char buffer[65];
    int r;
    for(r=10; r>=2; --r)
    {
        _itoa(-1, buffer, r);
        printf("base %d: %s (%d chars)\n", r, buffer, strlen(buffer));
    }
    printf("\n");
    for(r=10; r>=2; --r)
    {
        _i64toa(-1L, buffer, r);
        printf("base %d: %s (%d chars)\n", r, buffer, strlen(buffer));
    }
    printf("\n");
    for(r=10; r>=2; --r)
    {
        _ui64toa(0xffffffffffffffffL, buffer, r);
        printf("base %d: %s (%d chars)\n", r, buffer, strlen(buffer));
    }

    return 0;
}

〈出力〉

base 10: -1 (2 chars)
base 9: 12068657453 (11 chars)
base 8: 37777777777 (11 chars)
base 7: 211301422353 (12 chars)
base 6: 1550104015503 (13 chars)
base 5: 32244002423140 (14 chars)
base 4: 3333333333333333 (16 chars)
base 3: 102002022201221111210 (21 chars)
base 2: 11111111111111111111111111111111 (32 chars)

base 10: -1 (2 chars)
base 9: 145808576354216723756 (21 chars)
base 8: 1777777777777777777777 (22 chars)
base 7: 45012021522523134134601 (23 chars)
base 6: 3520522010102100444244423 (25 chars)
base 5: 2214220303114400424121122430 (28 chars)
base 4: 33333333333333333333333333333333 (32 chars)
base 3: 11112220022122120101211020120210210211220 (41 chars)
base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)

base 10: 18446744073709551615 (20 chars)
base 9: 145808576354216723756 (21 chars)
base 8: 1777777777777777777777 (22 chars)
base 7: 45012021522523134134601 (23 chars)
base 6: 3520522010102100444244423 (25 chars)
base 5: 2214220303114400424121122430 (28 chars)
base 4: 33333333333333333333333333333333 (32 chars)
base 3: 11112220022122120101211020120210210211220 (41 chars)
base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)