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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Digital2Slave

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值