整数を文字列に変換する
_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)