itoa (Integer to ASCII) は、整数型の値を文字列に変換するC言語の非標準ライブラリ関数。POSIX標準でもなく、glibc や BSD libc など大半の標準Cライブラリでは利用不可。Microsoft Visual C++では_itoaが用意されている_itoa, _itow functions | Microsoft Learn。実装されている場合は標準ヘッダーファイル<stdlib.h>において宣言されていることが多い。

第1引数に与えられた型の整数値を、第3引数に指定した基数表記でヌル終端文字列に変換し、第2引数に指定したへのポインタが指す配列(バッファ)に書き込む。戻り値は、第2引数に渡されたポインタそのものを返す。基数に無効な値が指定されて変換が失敗した場合はNULL(ヌルポインタ)を返す実装もある。

例えば、第1引数に100、第2引数に十分なサイズの文字配列、第3引数に16を指定すると、文字配列は"64"となる。

移植性がないこと、またバッファオーバーラン(バッファオーバーフロー)耐性がないことから、一般的には使用しないことが推奨されている。標準Cライブラリでは、printfファミリーのsprintfや、C99で標準化されたsnprintfなどが代替の候補に挙げられる。

形式 #include <stdlib.h> char *itoa(int value, char *buffer, int radix);

Go言語 Goのstrconvパッケージでは、整数値を文字列に変換する関数Itoa()と、文字列を整数値に変換する関数Atoi()が用意されているstrconv package - strconv - Go Packages。

脚注

関連項目 atof atoi atol strtol

外部リンク itoa() — Convert int into a string - IBM Documentation itoa() - ストリングへの int の変換 - IBM Documentation itoa, _itow - RAD Studio