c++ - 在 C++ 中拆分空分隔字符串序列的简单方法

标签 c++ stl std

我有一系列字符串存储在一个数组中,由空值分隔(例如 ['f', 'o', 'o', '\0', 'b', 'a', 'r' , '\0'...]),我需要将其拆分为 std::vector<std::string>或类似的。

我可以使用 std::find 编写一个 10 行循环来执行此操作或 strlen (事实上​​我只是这样做了),但我想知道是否有更简单/更优雅的方法来做到这一点,例如我忽略的一些 STL 算法,可以被诱使这样做。

这是一项相当简单的任务,如果可以应用一些巧妙的 STL 技巧使其变得更简单,我也不会感到惊讶。

有接受者吗?

最佳答案

我的两分钱:

const char* p = str;
std::vector<std::string> vector;

do {
  vector.push_back(std::string(p));
  p += vector.back().size() + 1;
} while ( // whatever condition applies );

关于c++ - 在 C++ 中拆分空分隔字符串序列的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243723/

相关文章:

c++ - 如何跳过将头文件包含到特定的 C/CPP 文件

c++ - 如果在promise.set_value()之后调用future.get()会发生什么?

c++ - 有没有一种方法可以在随机位置上反转颜色?

C++ std::vector::const_iterator 问题

C++ std::map 与动态数组

c++ - std::tr1::array 和 boost::array 之间的区别

c++ - 使用 C++ 构建解决方案后缺少 VCRUNTIME140_1.dll

c++ - std::thread 完成函数

STL - C++ 开发人员必须具备哪一部分 STL 知识?

C++从heredoc读取标准输入