class Solution {
public:
int StrToInt(string str) {
int i = 0;
int result=0;
int sign=1;
while(i<str.size()){
//判断是否是+-,-单独赋值为-1
if (i < str.size() && (str[i] == '+' || str[i] == '-')) {
if(str[i]=='-'){
sign=-1;
}
i++;
}
//判断除了是+-的非其他符号,并对其判断是否超过了最大范围Int_max
else if (i < str.size() && (str[i] >= '0' && str[i] <= '9')) {
if (result > INT_MAX / 10 || (result == INT_MAX / 10 &&(str[i] - '0') > INT_MAX % 10)) {
return INT_MAX;
}
result = result * 10 + (str[i++] - '0');
}
//其他情况返回0
else{
return 0;
}
}
//循环结束返回结果
return sign*result;
}
};