C++带逗号分隔符的字符串转数字

/*
将带有逗号分隔符的字符串数字转换为对应数字
对于诸如"1a2b3c",返回0,ok被修改为false
ok标识是否转换成功
*/
long str2num(const char* str,bool& ok)
{
    long result=0;
    int t=1;
    ok=true;
    const char* pstr=str;
    if(*pstr=='-')
    {
        t=-t;
        pstr++;
    }
    while(*pstr!='\0')
    {
        if(isdigit(*pstr))
        {
            result*=10;
            result+=*pstr-'0';
        }
        else
        {
            if(*pstr!=',')
            {
                ok=false;
                return 0;
            }
        }
        pstr++;
    }
    return t*result;
}

 

posted @ 2021-02-20 22:54  castor_xu  阅读(1169)  评论(0编辑  收藏  举报