enum Status {kValid=0,kInValid};
int g_nStatus=kValid;
long long StrToIntCore(const char* digit,bool minus)
{
long long num=0;
while(*digit!='\0')
{
if(*digit>='0' && *digit<='9')
{
//介于0-9之间,则minus=false,flag=1
int flag=minus?-1:1;
num=num*10+flag*(*digit-'0');
//如果minus=false并且num达到正整数最大值0x7fffffff
//或者minus=true并且num达到负整数最小值0x80000000
//则溢出,break
if((!minus && num>0x7fffffff) || (minus&& num<(signed int)0x80000000))
{
num=0;
break;
}
digit++;
}
else
{
num=0;
break;
}
}
//区分NULL和0
if(*digit=='\0')
g_nStatus=kValid;
re
一刷剑指offer(49)——把字符串转换成整数
最新推荐文章于 2021-10-02 09:53:39 发布