实际使用字符串,常常需要根据制定的格式拼好字符串,然后按照实际反向再解析获取字符串。例如:

string str = "00001|00009|00015" 需要分别得到:char arStr[] = {"00001", "00009", "00015"},需要一个算法来实现这种字符串的截取,如下是我写的一个实现代码

//将item 按照字符 ch进行截取成几个字符串,并保存到v 中
template <typename T> 
void Split(const char *item, char ch, vector<T> &v)
{
    const char *pcPos1 = item;
    const char *pc_Pos2 = item;
    const char *pEnd  = item + strlen(item);

    int iLen = 0;
    while (pc_Pos2<pEnd)
    {
        if (*pc_Pos2 == ch)
        {
            iLen = pc_Pos2 - pcPos1;
            if (iLen > 0)
            {
                string str(pcPos1, iLen);
                const char *pStr = str.c_str();
                v.push_back(atoi(pStr));

            }
            pcPos1 = pc_Pos2 + 1;

        }
        ++pc_Pos2;
    }

    iLen = pEnd - pcPos1;
    if (iLen > 0)
    {
        string str(pcPos1, iLen);
        const char *pStr = str.c_str();
        v.push_back(atoi(pStr));
    }
}

 

posted on 2012-12-26 19:27  寻她千百度  阅读(1367)  评论(0)    收藏  举报