题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
class Solution {
public:
int StrToInt(string str) {
int len=str.size();
if(len<=0){
return 0;
}
int symbol=1,result=0;
if(str[0]=='-'){//验证正负数
symbol=-1;
}
for(int i=(str[0]=='+'||str[0]=='-')?1:0;i<len;++i){//若字符串首位是加号或减号,则从第二位开始转换
if(str[i]>='0'&&str[i]<='9'){
result=result*10+str[i]-'0';//字符'0'~'9'减去字符'0'等于相应的数字0~9
}
else{
return 0;
}
}
return symbol*result;
}
};