我正在尝试使用 boost 将字符串标记为字符
目前的 boost tokenizer 将基于空间进行 tokenize
typedef boost::tokenizer<boost::char_separator<char> >
tokenizer;
boost::char_separator<char> sep("");
tokenizer tokens(str, sep);
我希望输出是 j e f 但实际输出是 jef
我正在尝试使用 boost 将字符串标记为字符
目前的 boost tokenizer 将基于空间进行 tokenize
typedef boost::tokenizer<boost::char_separator<char> >
tokenizer;
boost::char_separator<char> sep("");
tokenizer tokens(str, sep);
我希望输出是 j e f 但实际输出是 jef
这个
""
是字符串文字,没有以空终止符结尾的字符。然而
" "
是包含一个字符的字符串文字 -空格也以空终止符结尾。如果要按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
,它需要字符,您的字符串""
不包含字符。通过将分隔符与输入字符串进行比较来实现拆分。当没有字符进行比较时,您想如何进行比较,即""
?