描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
注意:
①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0
②字符串中可能出现 +/- 且仅可能出现在字符串首位。
示例1
输入:"+2147483647"
返回值:2147483647
示例2
输入:"1a33"
返回值:0
class Solution {
public:
int StrToInt(string str) {
int number = 0;
const int end = str.size() - 1;
int flag = 1;
for (int i = 0; i <= end; ++i)
{
//判断正负数
if (str[i] == '+')
{
continue;
}
else if (str[i] == '-')
{
flag = -1;
continue;
}
//判断字符串是否能转换为整型
if (str[i] - '0' < 0 || str[i] - '0' > 9)
{
return 0;
}
//字符转化为整形并存入number中
number = number * 10 + str[i] - '0';
}
return number * flag;
}
};