码迷,mamicode.com
首页 > 其他好文 > 详细

字符串分割

时间:2019-03-14 00:23:13      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:string   col   list   push   直接   ++   dex   roc   ring   

废话不多说,直接上代码:

list<string> Split(const string& _szBeProcessed, const string& _szSeparator)
{
    list<string> liRst;
    if (_szBeProcessed.empty() || _szSeparator.empty())throw "Param 1 or param 2 is empty. Can‘t processed.";

    // Begin process
    int nSeparatorCurrentIndex = 0;
    int nSeparatorLastIndex = 0;
    while ((nSeparatorCurrentIndex = _szBeProcessed.find(_szSeparator, nSeparatorCurrentIndex)) >= 0)
    {
        liRst.push_back(_szBeProcessed.substr(nSeparatorLastIndex, nSeparatorCurrentIndex - nSeparatorLastIndex));
        nSeparatorLastIndex = ++nSeparatorCurrentIndex;
    }
  if(nSeparatorLastIndex < _szBeProcessed.length())
    liRst.push_back(_szBeProcessed.substr(nSeparatorLastIndex));
return liRst;
}
// Test
list<string> liSplit = Split("hello world. HELLO WORLD.", " ");
    for (string sz : liSplit)
        cout << sz << endl;

// Output result:
hello
world.
HELLO
WORLD.

步骤:

1、遍历分隔符所在的位置。

2、copy从上一分隔符所在位置到当前所在位置。

3、当前位置加一操作,并赋值给上一位置。

4、重复1-3步骤,直到find返回-1。

5、检查上一位置是否小于被处理字符串的长度。是:则表示后边还有待处理的字符串,执行步骤6;否则表示已经到字符串末尾。

6、copy从上一位置到待处理字符串末尾。

字符串分割

标签:string   col   list   push   直接   ++   dex   roc   ring   

原文地址:https://www.cnblogs.com/LandyTan/p/10527335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!