int StrToInt(const char*pStr,int defaultVal)
{
//空指针访问
if(pStr==0)
return defaultVal;
int result=1,tem=0 ;
//位数
int bitNum=0;
//符号
int sign=1 ;
const char *pTem=pStr ;
//检测第一个字符是不是-或者数字
if(*pTem=='-')
{
sign=-1;
//是否到了结尾或者中间有'\0'
if((*++pTem)!=0)
{
if(*pTem>'0'&&*pTem<='9')
{
//-1 *=N
result*=(*pTem-'0');
//计算位数
bitNum=(strlen(pStr)-2);
}
else
{
return defaultVal;
}
}
else
{
return defaultVal;
}
}
else if(*pTem>'0'&&*pTem<='9')
{
result=(*pTem-'0');
//计算位数
bitNum=(strlen(pStr)-1);
}
else
{
return defaultVal;
}
pTem++;
//检测剩下的字符串有没有不合法的'\0'截断
while(*pTem!=0)
{
//不合法
if(*pTem<'0'||*pTem>'9')
return defaultVal;
//计算结果 tem=tem*10+n
tem=tem*10+(*pTem-'0') ;
pTem++;
}
//组合首位和后续数字
return (tem+result*pow(10,bitNum))*sign;
}
自己实现StrToInt函数
最新推荐文章于 2023-11-17 11:14:14 发布