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; } };