我们先来看一看在标准库中的函数介绍:
解析C-string str,将其内容解释为整数,并返回为int类型的值。
看一下函数的具体细节:
该函数首先根据需要丢弃任意数量的空白字符(与isspace中一样)
,直到找到第一个非空白字符为止。然后,从这个字符开始,接
受一个可选的初始加号或减号,后面跟着尽可能多的基数为10的
数字,并将它们解释为数值。解析C-string str,将其内容解释为
整数,并返回为int类型的值。
字符串可以在组成整数的字符之后包含额外的字符,这些字符被
忽略,对函数的行为没有影响。
如果str中的第一个非空白字符序列不是有效的整数,或者由于str
为空或仅包含空白字符而不存在这样的序列,则不执行转换并返
回0。
我们可以总结出几个规律:
1.开头的空白字符自动跳过
2.可以识别符号位(正负号)
3.若出现非数字字符(‘0’到’9’),则忽略。
具体的实现:
int MyAtoi(const char *arr){
int sign = 1;//作为符号位的标记
long count = 0;//写一个长整型作为数据存储要转换的数据
if (arr == NULL){
//常规判空
return 0;
}
while