函数功能:
1.C语言库函数名: int atoi(const char *nptr);
2.atoi(array to integer )函数参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。
实现原理:
在计算中是只有0和1的,我们看到字符1 、 2 、3···和数字1、2.、3···在计算中都是用0和1来表示的,我们存储时会按照ASCII码进行存放。数字和字符都会根据ASCII码表进行转换,把一串二进制数据存入计算机。我们将字符串转换数字的根据就是ASCII表,把字符1 、 2 、3···和数字1、2.、3···按照ASCII表进行映射。
实现代码:
int my_atoi(char* pstr)
{
int sum = 0;
int sign = 1; //标志位
if(pstr == NULL) //判断指针是否为空
{
printf("Pointer is NULL\n");
return 0;
}
while(isspace(*pstr) == 0) //跳过前面的空格字符
{
pstr++;
}
if(*pstr == '-') //判断正负号
{
sign = -1;
}
if(*pstr == '-' || *pstr == '+')
{
pstr++;
}
// 把数字字符串逐个转换成整数,并把最后转换好的整数赋给Ret_Integer
while(*pstr >= '0' && *pstr <= '9')
{
sum = sum * 10 + *pstr - '0';
pstr++;
}
sum = sign * sum;
return sum;
}