好的,我承認字符串操作在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'函數來做到這一點 - 通過提升分割,正則表達式等將其複雜化是微不足道的好處。 –