atoi函数实现

来源:互联网 发布:windows未正确加载 编辑:程序博客网 时间:2024/05/16 00:44

1.注意溢出

2.特殊字符和空格的处理

class Solution {public:    int atoi(const char *str) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        assert(str != NULL);                while(isspace(*str))            str++;                    int sign = *str == '-' ? -1 : 1;                if (*str == '-' || *str == '+')            str++;                    int ret = 0;        while(isdigit(*str))        {            int digit = *str - '0';                        if (INT_MAX / 10 >= ret)                ret *= 10;            else                return sign == -1 ? INT_MIN : INT_MAX;                            if (INT_MAX - digit >= ret)                ret += digit;            else                return sign == -1 ? INT_MIN : INT_MAX;                            str++;        }                return ret * sign;    }};


0 0