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; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-05 19:29:23