用std :: getline拆分字符串

时间:2016-11-16 18:18:10

标签: c++ stl

我从此回复Split a string in C++?

复制代码
#include <string>
#include <sstream>
#include <vector>

void split(const std::string &s, char delim, std::vector<std::string> &elems) {
    std::stringstream ss;
    ss.str(s);
    std::string item;
    while (std::getline(ss, item, delim)) {
        elems.push_back(item);
    }
}


std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, elems);
    return elems;
}

我还添加了代码来检查item.empty()

测试代码 -

#include <xxx>

using namespace std;
string str = "0x0   0";
vector<string> result = split (str, ' ');

结果应该是 -

["0x0",   "0"]

但它没有拆分字符串,结果是 -

["0x0   0"]  

但是,它在 -

时工作正常
str = "a    b  c d   ";

使用std::getline()时有什么遗漏吗?

0 个答案:

没有答案