题目描述

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

输入描述

输入一个字符串,包括数字字母符号,可以为空

输出描述

如果是合法的数值表达则返回该数字,否则返回0

class Solution {
public:
    int StrToInt(string str)
    {
        int len = str.size();
        int symble = 1;
        long long  ret = 0;
        if(!len)
            return 0;
        if(str[0] == '-')
            symble = -1;
        int i = (str[0] == '-' ||str[0] == '+')?1:0;
        for(;i<len;i++)
        {
            if(!('0'<=str[i] && str[i]<='9')  )
            return 0;
            ret=(ret<<1)+(ret<<3)+(str[i] & 0xf);;
        }
        return ret *symble;
    }
};