题目
【将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0】
1、分析
将字符串转换成数字,需要考虑各种边界条件。
- 字符串前面有 加减号 的
- 字符串前面有空格的
- 表示的数字溢出的
2、代码
class Solution {
public:
int StrToInt(string str) {
int len=str.length();
if(len==0)
return 0;
long long num=0;
int i=0;
bool flag=true;
if(str[0]=='+')
{
flag=true;
++i;
}
if(str[0]=='-')
{
flag=false;
++i;
}
while(str[i]=='0' || str[i]==' ')
++i;
for(;i<len;++i)
{
if(str[i]<'0' || str[i]>'9')
return 0;
num*=10;
num+=(str[i]-'0');
}
if(!flag)
num=-num;
if(num>2147483647 || num<-2147483648)
return 0;
return num;
}
};