题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
模拟:注意几点:
1、字符串是否为空
2、字符串只有一位但是是+或者-
3、字符串每一位是否合法
4、字符串的溢出
5、可以用全局变量保存转换是否成功
6、判断高位是否为0.
class Solution {
public:
int StrToInt(string str) {
if(str.size()==0)
return 0;
if(str.size()==1&&(str[0]-'0'>9||str[0]-'0'<0))
return 0;
int sum=0;
for(int i=1;i!=str.size();++i)
{
if(str[i]-'0'>9||str[i]-'0'<0)
return 0;
else
{
sum+=(str[i]-'0')*pow(10,str.size()-1-i);
}
}
if(str[0]=='+')
return sum;
if(str[0]=='-')
return 0-sum;
if(str[0]-'0'>9||str[0]-'0'<0)
return 0;
return sum+(str[0]-'0')*pow(10,str.size()-1);
}
};