题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
解题思路
首先有可能有正负号,也有可能没有
当输入字符串中有非数字的时候输出为0
代码
class Solution {
public:
int StrToInt(string str) {
bool g_InvalidValue = false;
if (str.size() <= 0)
{
g_InvalidValue = true;
return 0;
}
int i = 0;
int sum = 0;
bool isPositive = false;
if (str[i] == '-')
{
isPositive = true;
i++;
}
else if (str[i] == '+')
{
i++;
}
while(str[i]) {
if (str[i] <= '9' && str[i] >= '0')
{
sum = sum *10 + str[i] - '0' + 0;
}else{
g_InvalidValue = true;
return 0;
}
i++;
}
if (isPositive)
{
sum = -sum;
}
return sum;
}
};