leetcode String to Integer (atoi)

来源:互联网 发布:mac暴风影音加载字幕 编辑:程序博客网 时间:2024/06/04 17:44

此题思路很简单,但需要注意一些特殊情况,例如空格、数据溢出以及正负数,且需注意,按照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;    }};


0 0