码迷,mamicode.com
首页 > 其他好文 > 详细

自己实现StrToInt函数

时间:2015-11-07 10:55:56      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

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函数

标签:

原文地址:http://blog.csdn.net/yue7603835/article/details/49699851

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!