目前共有2篇帖子。 內容轉換:不轉換▼
 
點擊 回復
164 1
【代码】用C++标准库实现explode函数和join函数
一派護法 十九級
1樓 發表于:2016-3-22 23:35

#include <iostream>
#include <string>
#include <vector>

using namespace std;

vector<string> explode(string delimiter, string str)
{
    vector<string> arr;
    if (!str.empty()) {
        string::size_type pos, oldpos = 0;
        while (pos = str.find(delimiter, oldpos))
        {
            if (pos == string::npos)
            {
                arr.push_back(str.substr(oldpos));
                break;
            }
            else
            {
                arr.push_back(str.substr(oldpos, pos - oldpos));
                oldpos = pos + delimiter.length();
            }
        }
    }
    return arr;
}

string join(string delimiter, vector<string> &str)
{
    string result;
    vector<string>::iterator iter;
    for (iter = str.begin(); iter < str.end(); iter++)
    {
        result += *iter;
        if (iter + 1 < str.end())
            result += delimiter;
    }
    return result;
}

int main(void)
{
    vector<string> list = explode(", ", "this, that, these, those, find a pen, the pen");
    cout << "Size: " << list.size() << endl;

    vector<string>::iterator iter;
    for (iter = list.begin(); iter < list.end(); iter++)
        cout << *iter << endl;

    cout << join(";", list) << endl;

    return 0;
}
一派護法 十九級
2樓 發表于:2016-3-22 23:35

运行结果:
Size: 6
this
that
these
those
find a pen
the pen
this;that;these;those;find a pen;the pen
Press any key to continue . . .

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:164 回複數:1
評論數: ?
作者: 巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-3-22 23:35
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。