拆分字符串的最佳方法是啥? (c++) [重复]

Posted

技术标签:

【中文标题】拆分字符串的最佳方法是啥? (c++) [重复]【英文标题】:what is the best way to split string ? (c++) [duplicate]拆分字符串的最佳方法是什么? (c++) [重复] 【发布时间】:2013-11-09 22:11:46 【问题描述】:

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

【问题讨论】:

【参考方案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 &lt;sstream&gt;

【讨论】:

【参考方案2】:

boost::algorithm::split

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

【讨论】:

【参考方案3】:

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

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

如果你有可用的 boost 就不太理想,但它应该适用于所有 C++ 实现。

【讨论】:

以上是关于拆分字符串的最佳方法是啥? (c++) [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中拆分字符串的最佳实践

使用拆分背景设置垂直表格样式的最佳方法是啥

将 HTML 文件的内容提取到字符串中的最佳方法是啥? (在 Python 中)[重复]

设置可以注入的填充对象的最佳方法是啥?

使用 C++ 拆分字符串 [重复]

在 C++ 中实现断言检查的最佳方法是啥?