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 。
丢弃所有空白字符,直至找到第一个非空白字符为止,然后尽可能多地提取字符以组成有效的整数表示形式,并将其转换为整数值。有效的整数值由以下部分组成:
- (可选) 正负号
- 数字
如果结果值无法被表示,即转换后的值超出相应返回类型的范围,则行为是未定义的。
目录 |
参数
| 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")); // 作为带前导零的十进制数处理 printf("%i\n", atoi("0x2A")); // 仅转换前导零并丢弃"x2A" printf("%i\n", atoi("junk")); // 无法执行转换 printf("%i\n", atoi("2147483648")); // 未定义行为:超出int范围 }
可能的输出:
-123 321 0 42 0 0 -2147483648
参考文献
- C23 标准 (ISO/IEC 9899:2024):
-
- 7.22.1.2 atoi、atol 和 atoll 函数 (p: 待定)
- 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函数(页:307)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 4.10.1.2 atoi 函数
-
- 4.10.1.3 atol 函数
参见
|
(C99)
|
将字节字符串转换为整数值
(函数) |
|
(C99)
|
将字节字符串转换为无符号整数值
(函数) |
|
(C95)
(C99)
|
将宽字符串转换为整数值
(函数) |
|
(C95)
(C99)
|
将宽字符串转换为无符号整数值
(函数) |
|
C++ 文档
关于
atoi
,
atol
,
atoll
|
|