字符串轉化爲整數(模擬實現atui)

class Solution
{
public:
    int StrToInt(string str)
    {
        if (str.empty())
            return 0;
        int symbol = 1;//自定義正負轉換變量
        if (str[0] == '-') //處理負號  
        {
            symbol = -1;
            str[0] = '0'; //這裏是字符'0',不是0     
        }
        else if (str[0] == '+') //處理正號      
        {
            symbol = 1;
            //爲何這兩步要將str[0]賦值爲‘0’?
            //由於若是有正負號輸入進來將symbol設置後就能夠在後面肯定返回值的正負號了
            //而後str[0]給成字符‘0’就是統一sum的計算過程,這一位給成0不會影響計算的結果
            str[0] = '0';
        }           
        int sum = 0;
        for (int i = 0; i<str.size(); ++i)
        {
            if (str[i] < '0' || str[i] > '9')
            {
                sum = 0;
                break;
            }
            sum = sum * 10 + str[i] - '0';
        }
        return symbol * sum;
    }
};
相關文章
相關標籤/搜索