题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
思路: 从题意“整数”中可以看出,当字字符串中只包含‘+’、‘-’、以及0~9的数时,字符串才有效。
int StrToInt(string str) {
int len=str.size();
if (len<=0)
return 0;
int i=0;
int flag=0; //正负标志
int res=0; //结果
if(str[0]=='-')
flag=-1;
else flag=1;
//当字符串以‘+’、‘-’开头时,循环从1开始,否则从0开始。
if(str[0]=='+'||str[0]=='-')
i=1;
else
i=0;
for(i;i<len;i++)
{
//若遇到非数字的字符,则字符串无效,返回0。
if (!(str[i]>='0'&&str[i]<='9'))
return 0;
res=res*10+(str[i]-'0');
}
res=res*flag;
return res;
}