将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
class Solution {
public:
int StrToInt(string str) {
int lenght=str.size();
if(lenght==0)
return 0;
int temp=0;
int sum=0;
if(str[0]=='+'||str[0]=='-')
{
temp=1;
}
for(int num_index=temp;num_index<lenght;++num_index)
{
if(numbers(str[num_index])==-1)
{
return 0;
}
sum=sum*10+numbers(str[num_index]);
}
if(str[0]=='-')
{
return -sum;
}
return sum;
}
int numbers(char ch)
{
int num;
switch(ch)
{
case '0':
num=0;
break;
case '1':
num=1;
break;
case '2':
num=2;
break;
case '3':
num=3;
break;
case '4':
num=4;
break;
case '5':
num=5;
break;
case '6':
num=6;
break;
case '7':
num=7;
break;
case '8':
num=8;
break;
case '9':
num=9;
break;
default:
num=-1;
}
return num;
}
};