拆分字符串的最佳方法是什么? (C ++)

时间:2013-11-09 22:11:46

标签: c++ string split

我有一个字符串,我想在每次出现char','时将其拆分。 我想将结果保存在指向字符串的指针向量中。 这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:0)

boost::algorithm::split

或者自己写。这个算法很容易用std::find来编写。

答案 1 :(得分:0)

我使用strtok来标记字符串,但这有一些缺点:

  • 这是cstring的一部分,它用于C风格的字符串,而不是std::string个对象。
  • 在第一次更改参数后多次调用它有点笨拙。

如果你有可用的增强功能它并不理想,但它适用于所有C ++实现。

答案 2 :(得分:-1)

"我想在每次char ',' ..."

时拆分它

使用std::getline并将分隔符(最后一个参数)指定为','

"我想将结果保存在指向字符串"

的指针向量中

你想避免使用指针向量,相信我。请改用std::vector<std::string>

std::istringstream is(",,,my,,weird,string");

std::vector<std::string> tokens;
std::string token;
while (std::getline(is, token, ',')) {
    if (!token.empty())
        tokens.push_back(token);
}

for (int i = 0; i < tokens.size(); ++i)
    std::cout << tokens[i] << " ";

输出my weird string。别忘了#include <sstream>