将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
思路:考虑正负号,以及+-123;考虑中间出现字母的状况,1a22,return 0;
1 class Solution { 2 public: 3 int StrToInt(string str) { 4 int n=str.size(); 5 if(n<1) return 0; 6 int num=0; 7 int flag=0; 8 int flag_done=0; 9 for(int i=0;i<n;i++){ 10 if(str[i]>='0'&&str[i]<='9'){ 11 num=num*10+str[i]-'0'; 12 continue; 13 } 14 15 if(str[i]=='+'){ 16 if(flag_done==0){ 17 flag_done=1; 18 continue; 19 } 20 else 21 return 0; 22 } 23 if(str[i]=='-'){ 24 if(flag_done==0){ 25 flag=1; 26 flag_done=1; 27 continue; 28 } 29 else 30 return 0; 31 } 32 else 33 return 0; 34 } 35 if(flag==1) 36 num=-num; 37 return num; 38 } 39 };