2

我想使用下面的代码根据 ASCII“标题开头”(SOH)字符分割一行:

#include <boost/algorithm/string.hpp>
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("\t "));

如您所见,分隔符由字符串“\t”表示。如何将 SOH 字符表示为要拆分的字符串?

http://www.asciitable.com/index/asciifull.gif

4

1 回答 1

3

正如评论中所说,您可以使用十六进制序列来表示字符。您可以通过利用宏来定义字符和字符串文字连接以将多个字符串转换为单个字符串,从而使您的代码更具可读性:

#define SOH "\x01"
#define TAB "\t"

boost::split(strs, "string to split", boost::is_any_of(TAB " " SOH));
于 2013-09-06T19:07:16.770 回答