Я читал следующий вопрос Разбор разделенного запятыми std :: string о том, как разбить строку запятой (кто-то дал мне ссылку из моего предыдущего вопроса), и один из ответов был :
stringstream ss( "1,1,1,1, or something else ,1,1,1,0" );
vector<string> result;
while( ss.good() )
{
string substr;
getline( ss, substr, ',' );
result.push_back( substr );
}
Но что, если бы моя строка была такой, как показано ниже, и я хотел бы разделять значения только жирными запятыми и игнорировать то, что появляется внутри <>
?
,
,,
,
Хочу получить:
<a,b>
<c,d>
"" //Empty string
<d,l>
""
Дано:,, Он должен вернуть: and "" and
Дано:, Он должен вернуть: и
Дано:, Он должен вернуть: и ""
Дано:,,, Он должен вернуть: and "" and "" и
Другими словами, моя программа должна вести себя так же, как данное решение выше, разделенное, ( Допустим, нет других, кроме жирных)
Вот некоторые предлагаемые решения и их проблемы:
Удалите все жирные запятые: Это приведет к тому, что следующие 2 ввода будут обрабатываться одинаково, хотя они не должны 'т
,
,,
Замените все полужирные запятые на некоторые символы и используйте приведенный выше алгоритм: Я не могу выбрать какой-нибудь символ для замены запятых, поскольку любое значение может появляются в остальной части моей строки