コンテンツにスキップ

atoi

出典: フリー百科事典『ウィキペディア(Wikipedia)』

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

概要

[編集]

引数で与えられた文字列を解析し、文字列先頭の連続する10進数整数部分をint型の整数に変換する。例えば、引数に"123abc"を与えると戻り値として123を返し、"-5"なら-5を返す。"abc"""空文字列)など変換不可能な文字列の場合、0を返す。

変換された後の数値がintの範囲に収まらない(結果がintで表現できない)場合、C99C11の仕様上は未定義動作 (undefined behavior) を引き起こす[1][2][注釈 1]。また、変換に失敗してもerrnoを書き換えないかもしれない。このため、atoiの使用を禁止しているガイドラインも存在する[3]

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

形式

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

脚注

[編集]

注釈

[編集]
  1. ^ strtolに関しては、変換された後の正しい値がlongの範囲に収まらない場合、正の符号のときはLONG_MAXを、負の符号のときはLONG_MINを返すと規定されている(算術オーバーフローの未定義動作は起こさない)。一方、atoiに関しては、intの範囲に収まらない場合であってもINT_MAXINT_MINを返すとは限らない。

出典

[編集]

関連項目

[編集]

外部リンク

[編集]