题目:
class Solution {
public:
int StrToInt(string str) {
//字符串->整数,串不合法返回0
int flag=1;
int i=0;
if(str[i]=='+')
{
i++;
}
else if(str[i]=='-')
{
i++;
flag=-1;
}
int sum=0;
while(str[i]!='\0')
{
while(str[i]==' ')
{
i++;
}
while(isdigit(str[i]))
{
sum=sum*10+str[i++]-'0';
if(sum*flag>INT_MAX)
{
return INT_MAX;
}
else if(sum*flag<INT_MIN)
{
return INT_MIN;
}
}
//来到这说明不是数字了
if(str[i]=='\0')
return sum*flag;
else
return 0;
}
return 0;
}
};