假设str格式" +1111AAAA1111" ,返回值为1111
int myAtoi(char* str) {
int flag=1,res=0,dig;
while(*str==' ')str++; //清理开始的空位
//记录下来符号位
if(*str=='-'){ //处理符号
flag=-1;
str++;
}else if(*str=='+'){
str++;
}
while(*str){
//遇见非数字 直接返回
if(*str<'0' || *str>'9'){
return flag*res;
}
dig=*str-'0';
//每次赋值前做溢出检查
if(flag==1 && res*10.0+dig>INT_MAX){
return INT_MAX;
}else if(flag==-1 && -res*10.0-dig<INT_MIN){
return INT_MIN;
}
res= res*10+dig;
str++;
}
return flag*res;
}