您的位置:首页 > 职场人生

面试题49:将字符串转换成整数

2016-07-22 20:18 363 查看
        题目:实现类似atoi函数。

       本题主要考虑各种测试条件。

        代码如下:

class Solution {
public:
int StrToInt(string str) {
if(str=="")
return 0;
int i=0;
bool neg=false;
if(str[0]=='-')
{
neg=true;
i++;
}
else if(str[0]=='+')
{
i++;
}
int sum=0;
for(; i < str.size(); i++)
{
if((str[i] >= '0') && (str[i] <= '9'))
sum =10 * sum + (str[i] - '0');
else
return 0;
}
return ((neg==true) ? 0-sum:sum);
}
};

         但此题我并未考虑溢出,看书上得:

for(; i < str.size(); i++)
{
int flag = neg ? -1 : 1;
if((str[i] >= '0') && (str[i] <= '9'))
{
sum =10 * sum + flag * (str[i] - '0');
if((!neg && sum > 0x7FFFFFFF) || (neg && sum < (signed int)0x80000000))
{
sum = 0;
break;
}
}
else
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: