将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
解:本题主要考虑多个边界因素和判断条件。
当字符串为空时,返回0;
当字符串中出现字母时,返回0;
当字符串的第一个字符为+-正负号时,进行判断。
int StrToInt(string str)
{
int flag=1,res=0;
int n=str.size();
if(!n)
return 0;
if(str[0]=='-')
flag=-1;
for(int i=(str[0]=='+'||str[0]=='-')?1:0;i<n;i++){
if(str[i]<'0'||str[i]>'9')
return 0;
res=res*10+str[i]-'0';
}
return res*flag;
}