利用STL标准库实现字符串分割

在我们的实际应用当中,字符串分割是很重要的一个功能,但是 C++ 的 string 并没有为我们提供这个功能,所以说我们只有自己动手实现.实现代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <string>
#include <vector>

using namespace std;

vector<string> splitString(string str,string pattern)
{
    string::size_type pos; // 查找到的位置
    vector<string> result; // 返回的字符串
    str+=pattern;
    int size=str.size();

    for(int i=0;i<size;i++)
    {
        pos = str.find(pattern,i);
        if(pos<size)
        {
            string s = str.substr(i,pos-i);
            result.push_back(s);
            i = pos+pattern.size()-1;
        }
    }

    return result;
}
Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计