假設(shè)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){
//遇見非數(shù)字 直接返回
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;
}