题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为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 };