介绍:
头文件: <stdlib.h>
此函数的功能是将数字字符的字符串转化为字面上的整型返回。
例如:
char arr1[] = "-12";
char arr2[] = "12";
char arr3[] = " -12";
char arr4[] = "-12a";
使用atoi 我们得到的结果是 -12、12、-12、-12
通过结果我们可以得知以下注意点:
- 如果字符串从开头就有连续的空格字符,则跳过这些连续的空格字符,找到不是空格的字符。
- 如果跳过这些空格字符后的第一个字符是数字字符,则从这个数字字符开始转换,并向后找连续的数字字符转换 ,如果连续中断,找到不是数字字符的字符,则在此截断寻找,返回前面已经转换好的连续的数字字符字面整型值。(这里截断向后寻找后,不管后面有没有数字字符函数都不管)
- 会读取正负符号并且会输出正负符号。
- 若除去正负号和空格,一开始的字符是非数字字符,则立刻返回,并且返回的结果为0
模拟实现:
1、判断是否是空格
2、判断正负号
3、 判断是否是数字字符
- 其中isdigit是用来判断是否是数字
- 将字符数字变成整型数字,就是字符数字 - ‘0’即可
- ret*10是为了个位十位这种位数
ret*flag是为了最后求出的数的正负有关。