我应该如何使用boost将字符串标记为char

时间:2019-05-17 19:32:29

标签: c++ string boost tokenize boost-tokenizer

我正在尝试使用boost将字符串标记为字符

当前的boost令牌生成器将基于空间令牌化

 typedef boost::tokenizer<boost::char_separator<char> >
    tokenizer;
  boost::char_separator<char> sep("");
  tokenizer tokens(str, sep);

我希望输出是 Ĵ Ë F 但实际输出是 杰夫

1 个答案:

答案 0 :(得分:0)

JNDI

是字符串文字,不包含以空终止符结尾的字符。 而

""

是字符串文字,包含一个字符-空格,也以空终止符结尾。 如果您想按空间分割" " ,则需要编写如下内容:

str = "j e f"

正如名称 typedef boost::tokenizer<boost::char_separator<char> > tokenizer; boost::char_separator<char> sep(" "); std::string str = "j e f"; tokenizer tokens(str, sep); for (auto i : tokens) cout << i << endl; // output j e f 暗示需要个字符,您的字符串char_separator不包含字符。通过将分隔符与输入字符串进行比较来实现拆分。没有字符(例如"")时,您想如何进行比较?