[编程题]把字符串转换成整数
把字符串转换成整数
http://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
判断方法有点暴力
带符号32位int类型整数为-2147483648~2147483647
public: int StrToInt(string str) { if (str.size() < 1) { return 0; } bool positive = str[0] == '-' ? false : true; long res = 0; for (int i = (str[0] == '-' || str[0] == '+') ? 1 : 0; i < str.size(); i++) { // 非法字符 if (str[i] < '0' || str[i] > '9') { return 0; } // 不论正负必越界 if (res > INT_MAX / 10) { return 0; } // 正数越界 if (res == INT_MAX / 10 && str[i] > '7' && positive) { return 0; } // 负数越界 if (res == INT_MAX / 10 && str[i] > '8' && !positive) { return 0; } res = res * 10 + (str[i] - '0'); } return positive ? res : -res; } };