atoi函数功能:将字符串转化成整形数字;
实现过程:
atoi()会扫描参数parr字符串,跳过前面的空格字符,
直到遇上数字或正负号才开始做转换,
而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。
具体实现:
#include<stdio.h>
long My_atoi(const char *parr)
{
long number = 0;
int flag = 1; //判断符号位
if (NULL == parr)
{
printf("parr is NULL");
return 0;
}
while (*parr == ' ') //空格
{
parr++;
}
if (*parr == '-') //符号位
{
flag = -1;
parr++; //后移3移位
}
while ((*parr >= '0') && (*parr <= '9') )//转化
{
number = number * 10 + *parr - '0';
parr++;
}
return flag*number;
}
int main()
{
char arr[] = " -1234";
long ret = My_atoi(arr);
return 0;
}