牛客 JZ49 : 把字符串转换成整数
程序员文章站
2022-06-11 10:35:58
...
class Solution {
public:
//判断字符是不是数字
bool isDigit(const char& ch) {
if(ch >= '0' && ch <= '9')
return true;
return false;
}
int StrToInt(string str) {
//判空
if(str.empty() == 1){
return 0;
}
int i = 0; //索引
int flag = 1; //符号位
int ret = 0; //保存结果
//判断第一个位置是否有'+'或者'-'
if(str[i] == '+'){
//flag赋1, 索引i后移
flag = 1;
i++;
}
else if(str[i] == '-'){
//flag赋-1, 索引i后移
flag = -1;
i++;
}
//开始遍历
for(; i < str.size(); i++) {
if(isDigit(str[i]) == 0){
//不是数字, 非法输入
return 0;
}
else{
//合法输入
ret = ret * 10 + str[i] - '0';
}
}
return ret * flag;
}
};