C

atol

atoi, atol, atoll

在头文件中定义
int atoi(con​​st char * str);
long atol(const char * str);
long long atoll(const char * str);(自C99以来)

解释str指向的字节字符串中的整数值。

放弃任何空格字符,直到找到第一个非空白字符,然后采用尽可能多的字符以形成有效的整数表示并将它们转换为整数值。有效的整数值由以下部分组成:

  • (可选)加号或减号

参数

str-指向要解释的以空字符结尾的字节字符串

返回值

若成功,则返回整数值对应str的内容。 如果转换后的值超出了相应返回类型的范围,则返回值未定义。 如果不能执行转换,则返回0。

#include <stdio.h> #include <stdlib.h> int main(void) { printf("%i\n", atoi(" -123junk") printf("%i\n", atoi("0") printf("%i\n", atoi("junk") // no conversion can be performed printf("%i\n", atoi("2147483648") // UB: out of range of int }

输出:

-123 0 0 -2147483648

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

strtolstrtoll(C99)将字节字符串转换为整数值(函数)
strtoul strtoull(C99)将字节字符串转换为无符号整数值(函数)

| atoi,atol,atoll的C ++文档 |