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