From : https://leetcode.com/problems/string-to-integer-atoi/
Implement atoi to convert a string to an integer.
class Solution {
public:
int myAtoi(string str) {
int flag=3, cur, len = str.size(), isStart=0;
long long res = 0;
for(int i=0; i<len; i++) {
cur = str[i];
if(!isStart && cur==' ') continue;
if(cur!='+' && cur!='-' && (cur<'0' || cur>'9')) break;
if(res) {
if(cur<'0' || cur>'9') break;
else res = res*10 + cur - '0';
if(flag*res>INT_MAX || flag*(res)<INT_MIN)
return flag>0?INT_MAX:INT_MIN;
} else {
if(flag!=3 && (cur=='+' || cur=='-')) break;
else if(flag == 3) {
if(cur=='+'||(cur>='1'&&cur<='9')) flag = 1;
else if(cur == '-') flag = -1;
if(flag!=3) isStart=1;
}
res = (cur>='0' && cur<='9')*(cur-'0');
}
}
cout<<endl;
return ((flag>0)-(flag<0))*(int)res;
}
};