atoi

標準Cライブラリの関数

atoi (ASCII to Integer) は、文字列を整数型に変換するC言語標準Cライブラリ関数。標準ヘッダーファイル <stdlib.h> で宣言されている。読み方は規格では特に定められていない。

概要 編集

引数で与えられた文字列を解析し、文字列先頭の連続する10進数整数部分をint型の整数に変換する。例えば、引数に"123abc"を与えると123を返し、"-5"なら-5を返す。"abc""123"全角文字)など変換不可能な文字列の場合、0を返す。変換された後の数値がintの範囲に収まらない場合、C99C11 の仕様上は戻り値は未定義 (undefined) である[1][注 1]。また、変換に失敗してもerrnoを書き換えないかもしれない。

正常に変換可能な文字列の場合は (int)strtol(s, NULL, 10) と同じ結果を返す。

形式 編集

#include <stdlib.h>
int atoi(const char *nptr);

脚注 編集

編集

  1. ^ strtolに関しては、変換された後の値がlongの範囲に収まらない場合、オーバーフローが発生するとLONG_MAXを、アンダーフローが発生するとLONG_MINを返すと規定されている。一方、atoiに関しては、例えばオーバーフローが起きてもINT_MAXを返すとは限らない。

関連項目 編集

外部リンク 編集