boost::split 返回 sep 字符

Posted

技术标签:

【中文标题】boost::split 返回 sep 字符【英文标题】:boost::split return sep character 【发布时间】:2012-08-31 03:43:20 【问题描述】:

我正在使用boost::split(lines, str, boost::is_any_of(delims)); 现在我想知道在每个拆分中找到了哪个分隔符。我会把那个字符放在分割线的末尾。这样我就可以重新创建原始字符串。我在boost::split 中搜索过但没有找到任何此类功能我需要使用任何其他功能吗?

【问题讨论】:

【参考方案1】:

mb boost::tokenizerboost::char_separator?

http://www.boost.org/doc/libs/1_51_0/libs/tokenizer/char_separator.htm

示例。

#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>

int main()

   std::string str = "hello, and what do. you? want";
   typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
   boost::char_separator<char> sep("", " ,.?");
   tokenizer tokens(str, sep);
   for (tokenizer::iterator pos = tokens.begin(); pos != tokens.end(); ++pos)
   
      std::cout << *pos << std::endl;
   

http://liveworkspace.org/code/8dca20ecaa017000dd67096fc5d20aeb

【讨论】:

如何区分分隔符和中间的文本? @DiproSen 在一个容器中复制分隔符并在另一个容器中复制单词。 我该怎么做?我需要将每个偶数项都放在分隔容器中吗? 例如,@DiproSen 将分隔符从返回的容器移动到其他容器。你有问题吗? tokens 是您所说的返回容器吗?因此,要移动分隔符,我需要依靠每个偶数项都是分隔符的事实?对

以上是关于boost::split 返回 sep 字符的主要内容,如果未能解决你的问题,请参考以下文章

Python基础函数

C ++将一些浮点值转换为字符串

Python3中有关字符串的常用函数总结

partition()方法

MYSQL的常用函数(字符串函数)

rsplit()方法