题目描述:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
思路:遍历字符串,将字符串逐个字符进行转换。注意需要判断是否溢出
class Solution {
public:
int StrToInt(string str) {
if(str.empty())
return 0;
int i=0;
while(str[i]==' ')//过滤前面的空格
i++;
int flag=1;
if(str[i]=='+')
i++;
else if(str[i]=='-'){
flag=-1;
i++;
}
long long sum=0;
for(i;i<str.size();i++){
if(str[i]>='0'&&str[i]<='9'){
sum=sum*10+flag*(str[i]-'0');
if(sum>INT_MAX||sum<INT_MIN){//防止数值越界
sum=0;
break;
}
}
else{
sum=0;
break;
}
}
return sum;
}
};