Я хотел был бы иметь возможность разделить строку на две части, 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::split()
, но это дает мне три части в исходном примере (left
, right
и more
).
Любые предложения?
Вас могут пригласить в это [предложение] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3510.html) и [это] (http: // stackoverflow.com/questions/5734304/c-boost-split-string). –