class Solution {
public:
int atoi(const char *str) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
bool flag = false,flag2=true; //flag 记录符号是否已出现,计数是否开始,flag2记录符号正负
long long ans = 0;
while(str!=NULL&&*str){
if(flag==false&&*str==' '){
str++;
continue;
}
if(flag==true&&!(*str>='0'&&*str<='9'))
break;
else{
flag = true;
if(*str=='+')
flag2 = true;
else if(*str=='-')
flag2 = false;
else if(*str>='0'&&*str<='9'){
ans = 10*ans+*str-'0';
if(flag2==false&&ans>=0x80000000)
return 0x80000000;
if(flag2==true&&ans>=0x7fffffff)
return 0x7fffffff;
}
else
break;
str++;
}
}
if(flag2==false)
ans = -ans;
return ans;
}
};
public:
int atoi(const char *str) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
bool flag = false,flag2=true; //flag 记录符号是否已出现,计数是否开始,flag2记录符号正负
long long ans = 0;
while(str!=NULL&&*str){
if(flag==false&&*str==' '){
str++;
continue;
}
if(flag==true&&!(*str>='0'&&*str<='9'))
break;
else{
flag = true;
if(*str=='+')
flag2 = true;
else if(*str=='-')
flag2 = false;
else if(*str>='0'&&*str<='9'){
ans = 10*ans+*str-'0';
if(flag2==false&&ans>=0x80000000)
return 0x80000000;
if(flag2==true&&ans>=0x7fffffff)
return 0x7fffffff;
}
else
break;
str++;
}
}
if(flag2==false)
ans = -ans;
return ans;
}
};