There are currently 2 posts.
Font size: Small - 100% (Default)  Content converter: No conversion
 
Clicks Replies
880 1
【代码】用C++标准库实现explode函数和join函数
巨大八爪鱼
武林盟主 二十一级
Reply
Floor 1 Posted at: 3/22/16 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;
}
巨大八爪鱼
武林盟主 二十一级
Reply
Floor 2 Posted at: 3/22/16 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 . . .
Reply the post
Content:
User: You are currently anonymous.
Captcha:
Unclear? Try another one.
(Shortcut key: Ctrl+Enter)
Post Information
Clicks: 880 Replies: 1
Author: 巨大八爪鱼
Last reply: 巨大八爪鱼
Last reply time: 3/22/16 23:35
Announcements