您的位置:首页 > 职场人生

面试题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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: