atoi, atol, atoll
From cppreference.net
|
定義先ヘッダ
<stdlib.h>
|
||
|
int
atoi
(
const
char
*
str
)
;
|
(1) | |
|
long
atol
(
const
char
*
str
)
;
|
(2) | |
|
long
long
atoll
(
const
char
*
str
)
;
|
(3) | (C99以降) |
str が指すバイト文字列内の整数値を解釈します。暗黙の基数は常に 10 です。
空白文字が最初の非空白文字が見つかるまで破棄され、その後、有効な整数数値表現を形成するために可能な限り多くの文字を取り、それらを整数値に変換します。有効な整数値は以下の部分で構成されます:
- (optional) プラスまたはマイナス記号
- 数値の桁
結果の値が表現できない場合、すなわち変換された値が対応する戻り値の型の範囲から外れる場合、動作は未定義です。
目次 |
パラメータ
| str | - | 解釈対象のヌル終端バイト文字列へのポインタ |
戻り値
成功時の str の内容に対応する整数値。
変換が実行できない場合、 0 が返されます。
注記
この名前は「ASCIIから整数へ」を意味します。
例
このコードを実行
#include <stdio.h> #include <stdlib.h> int main(void) { printf("%i\n", atoi(" -123junk")); printf("%i\n", atoi(" +321dust")); printf("%i\n", atoi("0")); printf("%i\n", atoi("0042")); // 先頭のゼロを持つ10進数として扱われる printf("%i\n", atoi("0x2A")); // 先頭のゼロのみが変換され、"x2A"は破棄される printf("%i\n", atoi("junk")); // 変換を実行できない printf("%i\n", atoi("2147483648")); // UB: intの範囲外 }
出力例:
-123 321 0 42 0 0 -2147483648
参考文献
- C23規格 (ISO/IEC 9899:2024):
-
- 7.22.1.2 atoi、atol、およびatoll関数 (p: TBD)
- C17規格 (ISO/IEC 9899:2018):
-
- 7.22.1.2 atoi、atol、atoll関数 (p: 249)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.22.1.2 atoi、atol、およびatoll関数 (p: 341)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.20.1.2 atoi、atol、およびatoll関数 (p: 307)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 4.10.1.2 atoi関数
-
- 4.10.1.3 atol関数
関連項目
|
(C99)
|
バイト文字列を整数値に変換する
(関数) |
|
(C99)
|
バイト文字列を符号なし整数値に変換する
(関数) |
|
(C95)
(C99)
|
ワイド文字列を整数値に変換する
(関数) |
|
(C95)
(C99)
|
ワイド文字列を符号なし整数値に変換する
(関数) |
|
C++ documentation
for
atoi
,
atol
,
atoll
|
|