How to split string in C++(分割字符串)

本文以C++代碼的形式,展現瞭如何分割字符串對象。

源碼

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;


void printVec(vector<string> &res)
{
    for (size_t i = 0; i < res.size(); i++)
    {
        cout << i << ":" << res[i] << endl;
    }
}


void splitString2Vector1(string &v, vector<string> &res)
{
    string tmp;
    for( size_t i = 0; i < v.size(); i++)
    {
        tmp += v[i];
        if (v[i] == ',')
        {
            res.push_back(tmp.substr(0, tmp.size()-1));
            tmp = "";
        }
        else if (i == v.size() - 1)
        {
            res.push_back(tmp);
        }
    }
    printVec(res);
}


void splitString2Vector2(stringstream &ss, vector<string> &res)
{
    string i;
    while (std::getline(ss, i, ','))
    {
        res.push_back(i);
    }
    printVec(res);
}


int main(int argc, char* argv[])
{
    string v = "iPhone 6,iphone 6s,iPhone 7, 中興, 華爲, 小米, 三星, OPPO, VIVO, 魅族, 360";
    vector<string> res;

    cout << "Method 1" << endl;
    splitString2Vector1(v, res);

    res.clear();
    cout << "------------------" << endl;

    cout << "Method 2" << endl;
    std::stringstream ss(v);
    splitString2Vector2(ss, res);

    return 0;
}

運行結果

Method 1
0:iPhone 6
1:iphone 6s
2:iPhone 7
3: 中興
4: 華爲
5: 小米
6: 三星
7: OPPO
8: VIVO
9: 魅族
10: 360
------------------
Method 2
0:iPhone 6
1:iphone 6s
2:iPhone 7
3: 中興
4: 華爲
5: 小米
6: 三星
7: OPPO
8: VIVO
9: 魅族
10: 360
請按任意鍵繼續. . .

參考

How to use stringstream to separate comma separated strings

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章