1 class Solution { 2 public: 3 int StrToInt(string str) { 4 if(str.size() == 0) return 0; 5 6 int k; 7 //去空格 8 while(str.size() != 0 && str[k] == ‘ ’) k++; 9 10 bool is_minus = false; 11 long long num = 0; 12 13 14 //判断正负 15 if(str[k] == '+') k++; 16 else if(str[k] == '-') k++,is_minus = true; 17 18 19 //字符变数字 20 while(k < str.size() && str[k] >= '0' && str[k] <= '9') 21 { 22 num = num *10 + str[k] - '0'; 23 k++; 24 } 25 26 //处理特例 27 if(k == str.size()) 28 { 29 if(is_minus) num *= -1; 30 if(num > INT_MAX) num = 0; 31 if(num < INT_MIN) num = 0; 32 return (int) num; 33 } 34 else return 0; 35 36 } 37 };