切割字符串,将其存入vector

来源:互联网 发布:交大知行大厦 邮编 编辑:程序博客网 时间:2024/06/01 09:49
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,",");

0 0
原创粉丝点击