1. 程式人生 > >劍指offer____把字串換成整數

劍指offer____把字串換成整數

題目描述
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。
輸入描述:
輸入一個字串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
 

class Solution {
public:
    int StrToInt(string str)
    {
        if(str.size()== 0 || str[0] == '0')  return 0;
        bool flag = true;
        int result = 0;
        if(str[0] == '+')
        {
            flag = true;
        }
        else if(str[0] == '-')
        {
            flag = false;
        }
        else if(!isdigit(str[0]))
        {
             return 0;
        }
        vector<int>con;
        for(int i = 0; i < str.size(); ++i)
        {
            if(str[i] == '+' ||str[i] == '-') continue;
            if(isdigit(str[i]))
            {
                con.push_back(str[i] - '0');
            }
            else
            {
                return 0;
            }
        }
        int j = 1;
        for(int i = con.size() - 1; i >= 0; i--)
        {
            result += con[i] *j;
            j *=10;
        }
        if(!flag)
        {
            result = -result;
        }
     return result;  
    }
};