首页 > 解决方案 > 用数字提升 char_separator

问题描述

我们可以使用 boost/tokenizer 或 boost::char_separator 来分隔数字吗?

假设我们有一行:

1 *1:0 *2:0 0.01

我们可以用定界符打破上述行,多个定界符用

boost::char_separator<char> space_star_sep{" ", ":"};

这会给我令牌:

1
*1 
:
0
*2
:
0
0.01

如果我使用单个分隔符作为

boost::char_separator<char> space_star_sep{" "};

我会得到:

1
*1:0
*2:0
0.01

有没有办法直接用数字和分隔符分解字符串,而不是获取令牌和解析。说,如果我想要令牌:

1
*1
*2
0.01

我尝试在 char_seperator 中给出通用的东西,例如 \d 等,但它们是 char 分隔符的未知序列。

标签: c++boost

解决方案


如果您的问题是,您可以通过将分隔符字符串传递给或类似的函数(比如说)来标记":0"字符串char_seperatorstrtok

不。

按照他们的意图,这些函数只能通过使用单个字符作为分隔符或标记器来工作。


推荐阅读