首页 > 其他 > 详细

17.把字符串转换成整数atoi

时间:2014-05-22 01:34:04      阅读:390      评论:0      收藏:0      [点我收藏+]

http://zhedahht.blog.163.com/blog/static/25411174200731139971/

代码如下:

bubuko.com,布布扣
bool bValid = true;

int str2int_core(const char *digit,bool minus)
{
    long long sum = 0;
    int flag = minus ? -1:1;
    while(*digit!=\0)
    {
        if (*digit>=0&&*digit<=9)
        {
            sum = 10*sum + flag*(*digit-0);

            // whether overflow ?
            if ((!minus && sum > (signed int)0x7fffffff)
                || (minus && sum < (signed int)0x80000000))
            {
                sum = 0;
                break;
            }
            digit ++;
        }
        else
        {
            sum = 0;
            break;
        }
    }

    if (*digit==\0)
    {
        bValid = true;
    }
    return (int)sum;
}

int str2int(const char *str)
{
    bValid = false;
    long long sum = 0;
    if (NULL==str || *str==\0)
        return (int)sum;
    bool minus = false;
    if (*str==+)
    {
        str++;
    }
    else if (*str==-)
    {
        str++;
        minus = true;
    }
    if (*str==\0)
        return  (int)sum;

    return str2int_core(str,minus);
}

void test_case(const char *str)
{
    int sum = str2int(str);
    if (bValid)
        cout<<sum<<endl;
    else
        cout<<"Invalid input!"<<endl;
}
bubuko.com,布布扣

17.把字符串转换成整数atoi,布布扣,bubuko.com

17.把字符串转换成整数atoi

原文:http://www.cnblogs.com/hellogiser/p/3738741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!