切割字符串,将其存入vector

char *  strsep (char **stringp, const char *delim)  
{  
    char *begin, *end;  
    begin = *stringp;  
    if (begin == NULL)  
        return NULL;  
    if (delim[0] == '\0' || delim[1] == '\0')  
    {  
        char ch = delim[0];  
        if (ch == '\0')  
            end = NULL;  
        else
        {  
            if (*begin == ch)  
                end = begin;  
            else if (*begin == '\0')  
                end = NULL;  
            else
                end = strchr (begin + 1, ch);  
        }  
    }  
    else
        /** Find the end of the token.  */
        end = strpbrk (begin, delim);  
    if (end)  
    {  
        /** Terminate the token and set *STRINGP past NUL character.  */
        *end++ = '\0';  
        *stringp = end;  
    }  
    else
        /** No more delimiters; this is the last token.  */
        *stringp = NULL;  
    return begin;  
}
// 以splite分割 获取 string ...到 vector
void GetMidBracket(vector<string>& StrVec,const char* pStr,char *splite)
{
    if (splite==NULL||pStr==NULL)
    {
        return;
    }
    char *p=splite;
    char *pRowBuf=(char *)pStr;
    while(1)
    {
        p = strsep(&pRowBuf,splite);
        if (p==NULL)
        {
            break;
        }
        if (p[0]=='\0')
            continue;
        StrVec.push_back(string(p));
    }
}

//用法
const char[2048] pStr="1,2,3,haha,6";
vector<string> StrVec;
GetMidBracket(StrVec,pStr,",");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值