将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数

class Solution {
public:
    int StrToInt(string str) {
        int result = 0;
        int len = str.size();
        if(len <= 0)
            return 0;
        int i = 0;
        int flag  = 0;
        if(str[i] == ' ')
        {
            i++;
        }
        if(str[i] == '+')
        {
            flag = 1;
            i++;
        }
        else if(str[i] == '-')
        {
                flag = -1;
                i++;
        }
        while(str[i] != '\0')
        {
            if(str[i] >= '0' && str[i] <= '9')
            {
                result = result * 10 + (str[i] - '0');
                i++;
            }
            else{
                result = 0;
                break;
            }
        }
        if(flag == -1)
            result = -result;
        return result;
    }
};

思路:只要保留正负号就可以了。

猜你喜欢

转载自blog.csdn.net/daiyun_102474/article/details/81389140