我希望能夠將一個字符串分爲兩部分,left
和right
,首次出現separator
。例如,使用#
作爲分隔符left#right#more
將導致left
和right#more
。使用C++ Boost將字符串拆分爲兩部分?
我必須這樣做的方法:
void misc::split(const string &input, string &left, string &right, char separator)
{
int index = input.find(separator);
if (index == string::npos)
{
left = input;
right.erase();
}
else
{
right = input.substr(index + 1);
left = input.substr(0, index);
}
}
現在我已經使用Boost開始,希望這個相當冗長的代碼壓縮的東西更優雅。我知道boost::split()
,但在初始示例中給出了三個部分(left
,right
和more
)。
有什麼建議嗎?
您可能會受到[提案](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3510.html)和[this](http:// stackoverflow.com/questions/5734304/c-boost-split-string)。 –