题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
解题思路:
解题代码:
1.
class Solution {
public:
int StrToInt(string str) {
int flag=1; //标志位,1代表正数,-1表示负数
if(str.size()<=0)
return 0;
string tmp;
int ii=0;
if(str[0]=='-')
flag=-1,ii++;
if(str[0]=='+')
flag=1,ii++;
for( ; ii<str.size(); ii++)
{
if(str[ii]<'0' || str[ii]>'9')
return 0;
else
tmp+=str[ii];
}
//字符串tmp转化为数字
if(tmp.size()<=0)
return 0;
int res=0;
int L=tmp.size();
for(int i=0; i<L; i++)
res=res*10+tmp[i]-'0';
return res*flag;
}
};