String to Integer (atoi)

来源:互联网 发布:嗟乎时运不齐命途多舛 编辑:程序博客网 时间:2024/05/16 09:22

注意事项:

(1)当字符串中没有数字时,返回0;

(2)由字符串转化而来的数字可能超出 int 的取值范围,故结果应该用 long long 类型来保存,当超出int取值范围时,返回 INT_MAX 或 INT_MIN;

(3)字符串中开头可能有一个或多个空格符;

(4)字符串中可能有 '+','-' 符号。

代码如下:

 

class Solution {public:    int atoi(const char *str) {        long long val = 0;          int sign = 1;                while(*str == ' ')        {            str++;        }                if(*str == '-')        {            sign = -1;            str++;        }        else if(*str == '+')        {            str++;        }                while(*str >= '0' && *str <= '9')        {            val = val * 10 + *str - '0';                        if(val > INT_MAX)            {                return sign > 0 ? INT_MAX : INT_MIN;            }                        str++;        }                return sign * val;    }};


 

 

0 0
原创粉丝点击