面试题49 把字符串转换成整数
2016-04-07 15:47
204 查看
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。class Solution { public: enum Status{KValid = 0, KInvalid}; int g = KValid; long long StrToIntCore(string str, bool minus){ int num = 0, i = 0; while (str[i] != '\0'){ if (str[i] >= '0' && str[i] <= '9'){ int flag = minus ? -1 : 1; num = num * 10 + flag * (str[i] - '0'); if ((!minus && num > 0x7FFFFFFF) || (minus && num < (signed int)0x80000000)){ num = 0; break; } i++; } else{ num = 0; break; } } if (str[i] == '\0'){ g = KValid; } return num; } int StrToInt(string str) { g = KInvalid; int num = 0, i = 0; if (str.length() > 0){ bool minus = false; if (str[i] == '+'){ i++; } else if (str[i] == '-'){ i++; minus = true; } if (str[i] != '\0'){ if (i != 0) str = str.substr(i, str.length() - 1); num = StrToIntCore(str, minus); } } return num; } };
相关文章推荐