字符串分割

Posted landytan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串分割相关的知识,希望对你有一定的参考价值。

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

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从上一位置到待处理字符串末尾。

以上是关于字符串分割的主要内容,如果未能解决你的问题,请参考以下文章

如何标记从卷积神经网络的分割算法生成的图像片段?

字符串分割strtok_s

通过 BPM 将音轨分割成片段,并使用 Superpowered iOS 分析每个片段

131. 分割回文串

Java 求解划分字母区间

java 片段分割共享元素转换