字符串轉換成整數(39)

題目

【將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0】


1、分析
將字符串轉換成數字,需要考慮各種邊界條件。

  • 字符串前面有 加減號 的
  • 字符串前面有空格的
  • 表示的數字溢出的

2、代碼

class Solution {
public:
    int StrToInt(string str) {
        int len=str.length();
        if(len==0)
            return 0;
        long long num=0;
        int i=0;
        bool flag=true;
        if(str[0]=='+')
        {
            flag=true;
            ++i;
        }
        if(str[0]=='-')
        {
            flag=false;
            ++i;
        }
        while(str[i]=='0' || str[i]==' ')
            ++i;
        
        for(;i<len;++i)
        {
            if(str[i]<'0' || str[i]>'9')
                return 0;
            num*=10;
            num+=(str[i]-'0');
        }
        if(!flag)
            num=-num;
        if(num>2147483647 || num<-2147483648)
            return 0;
        return num;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章