我正在尝试使用boost将字符串标记为字符
当前的boost令牌生成器将基于空间令牌化
typedef boost::tokenizer<boost::char_separator<char> >
tokenizer;
boost::char_separator<char> sep("");
tokenizer tokens(str, sep);
我希望输出是 Ĵ Ë F 但实际输出是 杰夫
答案 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
不包含字符。通过将分隔符与输入字符串进行比较来实现拆分。没有字符(例如""
)时,您想如何进行比较?