C 编程/stdlib.h/atoi
外观
atoi 是 C 编程语言中的一个函数,用于将字符串转换为整数的数值表示形式。atoi
代表 ASCII to integer。它包含在 C 标准库头文件 stdlib.h
中。它的原型如下
int atoi(const char *str);
str
参数是一个字符串,用字符数组表示,包含一个带符号整数的字符。该字符串必须以空字符结尾。当 atoi 遇到没有数值序列的字符串时,它会返回零 (0)。
atoi 函数有几种变体,atol、atof 和 atoll,分别用于将字符串转换为 long
、double
或 long
long
类型。atoll 以前称为 atoq,包含在 C99 中。
不可能判断字符串是否包含表示数字 0 的有效数字序列或无效数字,因为该函数在这两种情况下都会返回 0。较新的函数 strtol 没有这种缺陷。
atoi 在某些操作系统上既不是线程安全的,也不是异步取消安全的。[1]
此外,atoi 仅转换十进制 ASCII 值(这可能也是优势,取决于观点)。strtol 和其他函数支持十六进制和八进制等备用进制。
atoi、atof 和 atol 函数是 ISO 标准 C 库(C89)的一部分,而 atoll 函数由 C99 添加。
然而,由于返回 0 的模糊性以及在某些操作系统上缺乏线程安全性和异步取消安全性,atoi 被认为已被 strtol 弃用。[1]
Version 7 Unix 手册页 © 1979 by Bell Telephone Laboratories, Incorporated。
Version 1 Unix 手册页 for atoi 由 Ken Thompson 编写(1971 年 11 月)。