切割字符串

来源:互联网 发布:小说程序源码 编辑:程序博客网 时间:2024/05/17 04:27

typedef vector t_VecSplit;

void C_SplitString( t_VecSplit& ary,const char * str,const char* splt )
{
if (*str==0||*splt == 0)
{
return;
}

//clearary.clear();char target[64] = {0};Value sStr;int i = 0;while (true){    if (*str==0)    {        target[i] = 0;        sStr = target;        if (!sStr.isNull())        {            ary.push_back(sStr);        }        break;    }    if (*str==*splt)    {        target[i] = 0;        sStr = target;        if (!sStr.isNull())        {            ary.push_back(sStr);        }        str++;        i = 0;    }else    {        target[i++] = *(str++);    }}return;

}

void C_SplitUtf8(t_VecSplit& ary,const std::string& str,const char* splt)
{
ary.clear();
std::string _str = str;
Value _target;
int _index = 0;
do
{
_index = _str.find(splt);

    if (string::npos==_index)    {        _target = _str.substr( 0, _str.length() );        ary.push_back(_target);        break;    }    _target = _str.substr(0,_index);    _str.erase(0,_index+1);    ary.push_back(_target);} while (true);

}

0 0