题目:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数,数值为0或者字符串不是一个
合法的数值返回0.
解法:
1、充分考虑不同的输入情况和异常输入的情形。
2、首字符可以为0~9、‘+’、‘-’字符。
3、后面的字符必须为0~9之间的字符。
4、""、空字符串、和非法输入的 输出为0
代码如下:
int StrToInt(string str) {
if(str.size()==0||str.empty())
return 0;
int n = str.length();
int res =0;
if(str[0]=='+'||str[0]=='-')
{
for(int i =1;i<n;i++)
{
if(str[i]<='9'&&str[i]>='0')
res = res*10+ (str[i]-'0');
else
return 0;
}
return str[0]=='+'?res:(-1*res);
}
else if(str[0]<='9' && str[0]>='0')
{
for(int i =0;i<n;i++)
{
if(str[i]<='9'&&str[i]>='0')
res = res*10 + (str[i]-'0');
else
return 0;
}
return res;
}
else
return 0;