atoi()函数的实现
atoi()的作用:将字符串转换成整型数;
- 扫描字符串
- 跳过前面的空格字符
- 遇上数字或正负号开始转换
- 遇到非数字或字符串时(’\0’)结束转化
- 返回转换后的整型数
代码块儿
#include <stdio.h>
#include <ctype.h>
//模拟实现atoi
#if 1
int my_atoi(char * pr)
{ //判断输入合法性
if (pr == NULL)
{
printf("输入有误");
return 0;
}
//跳过空格
while (isspace(*pr) )
{
pr++;
}
//判断正负
int sign = 1;
if (*pr == '-')
{
sign = -1;
}
if (*pr == '+'||*pr=='-')
{
pr++;
}
//还原每一位数字
int result = 0;
while (*pr)
{
result = result * 10 + *pr - '0';
pr++;
}
int ret = result * sign;
return ret;
}
int main()
{
char arr1[] = "123";
char arr2[] = "-100";
my_atoi(arr1);
my_atoi(arr2);
int ret =my_atoi(arr1)+my_atoi(arr2);
printf("my_atoi(arr1) = %d my_atoi(arr2) = %d ret = %d",
my_atoi(arr1), my_atoi(arr2) ,ret);
return 0;
}
#endif
运行结果图