题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647
1a33
输出例子:
2147483647
0
代码
class Solution {
public:
int StrToInt(string str) {
if (str.size() == 0) {
return 0;
}
int i = 0;
//符号位
int tag = 1;
if (str[i] =='-') {
tag = -1;
++i;
} else if (str[i] == '+'){
++i;
}
int ans = 0;
for (; i < str.size(); ++i) {
if (str[i] >= '0' && str[i] <= '9') {
ans = ans * 10 + (str[i] - '0');
} else {
return 0;
}
}
return tag * ans;
}
};