c++ 分割字符串

创建日期: 2022-12-26 15:08 | 作者: 风波 | 浏览次数: 17 | 分类: C++

方法1. 在字符串中查找分隔符

代码如下:

#include <string>
#include <iostream>

int main(int argc, char *argv[]) {
    std::string slist = "cat, monkey, dog , cow";

    int cnt = 0;
    while(slist.find_first_of(',') != std::string::npos) {
        cnt += 1;
        auto name = std::string(slist, 0, slist.find_first_of(','));
        slist = std::string(slist, slist.find_first_of(',') + 1);
        std::cout << "[" << name << "]" << std::endl;
    }
    if(!slist.empty()) {
        auto name = std::string(slist);
        std::cout << "[" << name << "]" << std::endl;
    }

    return 0;
}

运行结果:

[cat]
[ monkey]
[ dog ]
[ cow]

方法2. 使用 std::getline()

来源:https://stackoverflow.com/questions/5167625/splitting-a-c-stdstring-using-tokens-e-g

代码:

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

using namespace std;

int main(int argc, char *argv[]) {
    vector<string> strings;
    istringstream f(" denmark; sweden; india ;us ");
    string s;    
    while (getline(f, s, ';')) {
        cout << "[" << s << "]" << endl;
        strings.push_back(s);
    }

    return 0;
}

运行结果:

[ denmark]
[ sweden]
[ india ]
[us ]
17 浏览
16 爬虫
0 评论