Linux函数atoi的功能分析(linuxatoi)

linux 系统中函数 atoi 用于将字符串转换为 int 类型数字,atoi 函数属于C 标准库函数,其定义如下:

int atoi(const char *nptr);

atoi 会扫描参数 nptr 字符串,跳过前面的空白字符(即便有前导0也会被忽略),直到遇上数字或正负号才开始做转换,而且 atoi 函数不支持16进制数的转换,只是支持10进制的字符串转换为对应10进制数,一旦遇到非数字或字符串结束符(\0),则会停止转换。

使用 atoi 可以很容易实现字符串与 int 的转换,在 CPython 中进行数字转换也是基于 atoi 函数,具体实现如下:

//python代码

def atoi(str):

if str is None or len(str) == 0:

return 0

i = 0

flag = 1

if str[0] == ‘-‘:

flag = -1

i = 1

res = 0

while i = ‘0’ and str[i]

res = res * 10 + int(str[i])

i += 1

return flag * res

atoi 的使用总结如下:

(1) atoi 函数只能用于将字符串转换为 int 类型,不支持16进制数的转换;

(2) atoi 函数会跳过前面的空白字符,不会考虑前导0;

(3) atoi 函数会一直做转换,直到遇到非数字或字符串结束符;

(4) CPython 中对数字转换也是基于 atoi 函数实现的。


数据运维技术 » Linux函数atoi的功能分析(linuxatoi)