atoi
atoi (ASCII to Integer) は、文字列を整数型に変換するC言語の標準Cライブラリの関数。標準ヘッダーファイル <stdlib.h> で宣言されている。読み方は規格では特に定められていない。
概要
引数で与えられた文字列を解析し、文字列先頭の連続する10進数整数部分をint型の整数に変換する。例えば、引数に"123abc"を与えると戻り値として123を返し、"-5"なら-5を返す。"abc"や""(空文字列)など変換不可能な文字列の場合、0を返す。
変換された後の数値がintの範囲に収まらない(結果がintで表現できない)場合、C99やC11の仕様上は未定義動作 (undefined behavior) を引き起こす[1][2][注釈 1]。また、変換に失敗してもerrnoを書き換えないかもしれない。このため、atoiの使用を禁止しているガイドラインも存在する[3]。
正常に変換可能な文字列の場合は (int)strtol(s, NULL, 10) と同じ結果を返す。
形式
#include <stdlib.h>
int atoi(const char *nptr);
脚注
注釈
-
strtolに関しては、変換された後の正しい値がlongの範囲に収まらない場合、正の符号のときはLONG_MAXを、負の符号のときはLONG_MINを返すと規定されている(算術オーバーフローの未定義動作は起こさない)。一方、atoiに関しては、intの範囲に収まらない場合であってもINT_MAXやINT_MINを返すとは限らない。
外部リンク
atoi(3)– JM Project Linux Library Functions マニュアル- atoi, atol, atoll - cppreference.com
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.