atoi函数的介绍
该函数的头文件为 <stdlib.h>
或 <cstdlib>
需要注意的点:
如图所示
atoi函数将字符串的内容转换为数字
在转换为数字之前会尽可能的跳过空格字符
而遇到字符则会直接返回0
atoi函数的自我实现
1.遇到空格直接跳过
2.遇到数字返回 数字的ASCLL码值是48-57
3.遇到字符停止
int my_atoi(const char* str)
{
//1.遇到空格直接跳过
//2.遇到数字返回 数字的ASCLL码值是48-57
//3.遇到字符停止
int num = 0;
char* p = str;
while (*p == ' ')
p++;
while (*p <= 57 && *p >= 48)//如果是数字就可以进来
{
num = num * 10 + (*p - '0');//每得到一个数字就把前面得到的左移一位
p++;
while (*p < 48 || *p>57)
{
return num;
}
}
return 0;//在不是数字的情况下都返回0;
}
int main()
{
char q[] = "12345";//12345
char qq[] = "abcde";//0
char qqq[] = "123abc";//123
char qqqq[] = " 123abc";//123
char qqqqq[] = " ";//0
char qqqqqq[] = "";//0
printf("%d\n", my_atoi(q));
printf("%d\n", my_atoi(qq));
printf("%d\n", my_atoi(qqq));
printf("%d\n", my_atoi(qqqq));
printf("%d\n", my_atoi(qqqqq));
printf("%d\n", my_atoi(qqqqqq));
return 0;
}