考虑全面即可
int myAtoi(char* str) {
char *p=str;
int ans=0,flag=1,limit=2147483647;
int IsOverFlow=limit/10;
while(*p==' ')
p++;
if(*p!='-' && *p!='+' && (*p<'0' || *p>'9'))
return 0;
if(*p=='-')
{
flag=-1;
limit=-2147483648;
p++;
}
else if(*p=='+')
p++;
if(*p<'0' || *p>'9')
return 0;
while(*p>='0' && *p<='9')
{
if(flag==1 && (ans>IsOverFlow ||(ans==IsOverFlow && *p-'0'>7)))
return limit;
else if(flag==-1 && (ans>IsOverFlow ||(ans==IsOverFlow && *p-'0'>8)))
return limit;
ans=ans*10+(*p-'0');
p++;
}
ans=ans*flag;
return ans;
}