当前位置:C++技术网 > 精选软件 > C语言版的字符串分割Split函数实现

C语言版的字符串分割Split函数实现

更新时间:2016-11-09 21:05:10浏览次数:1+次

    之前使用string实现过一版字符串分割函数split,见文章《C++的string分割字符串split实现》。不过感觉实现的代码比较多,效率也就显得低了些。

    今天发现C语言有一个函数,可以实现字符串分割,遂总结下,今后使用。因为代码更加简洁,所以比较喜欢。

    先看看实现的效果图:

C语言版的字符串分割Split函数实现

   下面是函数的使用代码示例:


CString str = _T("hello world www cjjjs com");
vector<CString> list;
Split(_T(" "),str,list);
    一个原始字符串,一个用于接收处理结果的容器。


    Split函数声明如下:


void Split(CString seps,CString str,vector<CString>& list);
    第一个参数为分割字符串,可以是一个字符,也可以是多个字符。第二个是原始字符串,第三个参数是接收处理结果的容器。


    Split函数的源码如下:


void Split(CString seps,CString str,vector<CString>& list)
{
    CString token = _tcstok(str.GetBuffer(), seps );
    str.ReleaseBuffer();
    while( !token.IsEmpty() )
    {
        list.push_back(token);
        token = _tcstok( NULL, seps );
    }
}
    函数代码非常短小,比string版的代码少多了。看着舒服。如果你喜欢,可以随时查询这个文章复制代码使用。