好的,我承认字符串操作在C++方面从来就不是我的强项,尽管我在使用Boost的各种情况下都取得了相当的成功,但我仍然遇到一些问题。使用字符串分隔符标记/分割字符串的最简单方法是什么?
所以,这里是我所需要的(例子中是精确的)...
输入是:
position fen <arg_a1> <arg_a2> ... <arg_aN> moves <arg_b1> <arg_b2> ... <arg_bN>
(当然,对于那些谁是熟悉的与主题,这是一个UCI协议的命令)
我想要做的是:
- 得到
<arg_a1> <arg_a2> ... <arg_aN>
(与包含空格)合并为一个字符串(即position
和moves
- 之间的字符串也得到
<arg_b1> <arg_b2> ... <arg_bN>
到另一个字符串中(即从moves
字符串,直到结束)。
我已经打了很多与Boost::split
但很明显这是工作很像strtok
(接受字符和不串分隔符)。
我应该怎么做?没有我重新发明轮子(我倾向于......经常......大声笑),解决这个特定问题的最简单方法是什么?
建议:显然我可以做到。但我现在所能想到的都很难看。我正在寻找的是一个C++ - 友好的方式...
这似乎很简单。如果你知道“位置”和“移动”这两个词的确切位置,你会怎么做?现在,你将如何找到这些单词在输入字符串中的位置?我敢打赌,如果你把这两样东西放在一起,一个可能的解决方案将是明确的。 –
您可能想要查看此答案 - http://stackoverflow.com/a/236803/701092 – 0x499602D2
+1对于Greg的评论。除此之外,你应该使用'std :: string'函数来做到这一点 - 通过提升分割,正则表达式等将其复杂化是微不足道的好处。 –