将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
思路:除掉空格,判断是否是合法字符,合法之后判断是否为正负值,然后计算。
class Solution {
public:
int StrToInt(string str) {
int len=str.length();
if(len==0)
return 0;
int dig=true;
int i=0;
int num=0;
while(str[i]==' ')//可以为空,所以要排除掉空的
i++;
if(str[i]=='+')//进行符号判断
i++;
else if(str[i]=='-')
{
i++;
dig*=false;
}
while(str[i]!='\0')
{
if(str[i]>='0'&&str[i]<='9')
{
int flag=dig?1:-1;
num=num*10+flag*(str[i]-'0');
i++;
}
else
{
num=0;
break;
}
}
return num;
}
};