目前共有2篇帖子。
字體大小:較小 - 100% (默認)  內容轉換:不轉換
 
點擊 回復
879 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)
本帖信息
點擊數:879 回複數:1
作者:巨大八爪鱼
最後回覆:巨大八爪鱼
最後回復時間:2016-3-22 23:35
公告板