把字符串轉換成整數
阿新 • • 發佈:2018-02-02
control amp spl als || con 輸出 clas for
題目描述
將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值為0或者字符串不是一個合法的數值則返回0輸入描述:
輸入一個字符串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
思路:多考慮特殊情況
1 class Solution { 2 public: 3 int atoi(string &str) 4 { 5 int sum=0; 6 for(int idx=0; idx<str.size(); ++idx) 7 {8 if(str[idx]<‘0‘ || str[idx]>‘9‘)return 0; 9 else sum=sum*10+str[idx]-‘0‘; 10 } 11 return sum; 12 } 13 int StrToInt(string str) { 14 if(str.size()==0)return 0; 15 bool isActive=true; 16 if(str[0]<‘0‘ || str[0]>‘9‘)17 { 18 if(str[0]==‘+‘) 19 { 20 isActive=true; 21 }else if(str[0]==‘-‘) 22 { 23 isActive=false; 24 }else{ 25 return 0; 26 } 27 str=str.substr(1, str.size()-1); 28 } 29 int res=atoi(str); 30 if(!isActive)res=-res; 31 return res; 32 } 33 };
把字符串轉換成整數