以下几种情况要考虑到
1,排除输入空格问题
2,确定正负
3,排除字母
4,处理overflow
class Solution {
public:
int myAtoi(string str) {
if (str.empty()) return 0;
int i = 0, sign = 1;
while (i + 1 < str.size() && isspace(str[i])) ++i;//排除输入空格问题
long res = 0;
if (str[i] == '-' || str[i] == '+') sign = 44 - str[i++];// 确定正负
while (i < str.size()) {
if (isdigit(str[i])) res = 10 * res + str[i++] - '0';
else return res * sign;
if (res > INT_MAX) return sign == -1 ? INT_MIN : INT_MAX;//处理overflow
}
return res * sign;
}
};