atoi
標準Cライブラリの関数
atoi (ASCII to Integer) は、文字列を整数型に変換するC言語の標準Cライブラリの関数。標準ヘッダーファイル <stdlib.h>
で宣言されている。読み方は規格では特に定められていない。
概要 編集
引数で与えられた文字列を解析し、文字列先頭の連続する10進数整数部分をint
型の整数に変換する。例えば、引数に"123abc"
を与えると123
を返し、"-5"
なら-5
を返す。"abc"
や"123"
(全角文字)など変換不可能な文字列の場合、0
を返す。変換された後の数値がint
の範囲に収まらない場合、C99 や C11 の仕様上は戻り値は未定義 (undefined) である[1][注 1]。また、変換に失敗してもerrno
を書き換えないかもしれない。
正常に変換可能な文字列の場合は (int)strtol(s, NULL, 10)
と同じ結果を返す。
形式 編集
#include <stdlib.h>
int atoi(const char *nptr);
脚注 編集
注 編集
- ^
strtol
に関しては、変換された後の値がlong
の範囲に収まらない場合、オーバーフローが発生するとLONG_MAX
を、アンダーフローが発生するとLONG_MIN
を返すと規定されている。一方、atoi
に関しては、例えばオーバーフローが起きてもINT_MAX
を返すとは限らない。
関連項目 編集
外部リンク 編集
atoi(3)
– JM Project Linux Library Functions マニュアル- atoi, atol, atoll - cppreference.com