題目
【將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲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;
}
};