字符串转成整数
- 题目
- 题解
- 代码
题目
点击跳转: 把字符串转换为整数
题解
【题目解析】:
本题本质是模拟实现实现C库函数atoi,不过参数给的string对象
【解题思路】:
解题思路非常简单,就是上次计算的结果10,相当于10进制进位,然后加当前位的值。
例如:“123”转换的结果是
sum=0
sum10+1->1
sum10+2->12
sum10+3->123
本题的关键是要处理几个关键边界条件:
- 空字符串
- 正负号处理
- 数字串中存在非法字符
代码
class Solution {
public:
int StrToInt(string str) {
if(str.empty())
return 0;
//处理负号
int flag=1;
if(str[0]=='-')
{
flag=-1;
str[0]='0';
}
else if(str[0]=='+')
{
flag=1;
str[0]='0';
}
//遍历str 计算数
int sum=0;
for(int i=0;i<str.size();i++)
{
if(str[i]<'0'||str[i]>'9')
{
sum=0; //要处理中间状态的数组
//当123a34 碰到a时 也要把sum的值置0 返回
break;
}
sum=sum*10+str[i]-'0';
}
return flag*sum;
}
};