Linux函数atoi的功能简介(linuxatoi)
atoi(ASCII to integer)函数它把字符串中的字符(第一个字符必须为数字)转换为int型数,只处理十进制数。如果数值太大,超出了范围,atoi函数就返回LONG_MAX或者LONG_MIN。
atoi函数用法:
int atoi (const char *str);
atoi函数示例:
int num;
num=atoi(“12345”);
运行结果:
num的值为12345
实际上atoi函数的核心需要遍历字符串里的每个字符,也就是遍历字符串中的每一位数字,将其拆分出来,然后每位数字的值*10的n次方,然后进行累加,最后得到的就是整数值。具体的实现代码如下:
int atoi(const char* str)
{
int result = 0; //最终返回的结果
int minus = 0; // 用来记录是否为负数
int pos = 0; // 用来记录是否有正负号,如果有且有数字,则pos=1
// 遍历计算字符串
while(*str != ‘\0’)
{
if(*str == ‘-‘ && pos == 0)
// 如果是负号,则把minus = -1;表示此数为负数
minus = -1;
else if(‘0’
{
// *str乘以10的n次方 ( n为字符串的当前位下标 )
result = result*10 + (*str – ‘0’);
pos = 1; //记录已经有数字
}
else if(pos == 0)
// 如果非数字非负号,直接返回
return 0;
str++;
}
return minus == -1 ? -result : result;
}
总结后,可以看出,Linux函数atoi的功能是把字符串中的字符转换为int型数,使用这个函数把字符串转化为整型数数字可以大大减少我们编程的工作量,以及节省空间和时间上的浪费。