您的位置:首页 > 其它

leetcode String to Integer (atoi)

2014-10-29 18:57 459 查看
此题思路很简单,但需要注意一些特殊情况,例如空格、数据溢出以及正负数,且需注意,按照C语言的标准是把异常字符起的后面全部截去,保留前面的部分作为结果

代码

class Solution {
public:
int atoi(const char *str) {

int res = 0;
int size = strlen(str);
int sign = 1;
if(size==0)
return res;
int i = 0;
while(i<size&&str[i]==' ')
{
++i;
}
if(str[i]=='+')
++i;
else if(str[i]=='-')
{
sign = -1;
++i;
}

for(; i < size; ++i)
{
if(str[i]==' ')
break;
if(str[i]<'0'||str[i]>'9')
break;
if(INT_MAX/10 < res || INT_MAX/10 == res && INT_MAX%10 < (str[i]-'0'))
{
return sign == -1 ? INT_MIN:INT_MAX;
break;

}

res = res*10 + str[i]-'0';
}

return res*sign;
}
};



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: