Есть ли способ разбить строку на небольшую часть и сохранить в векторе.
Например:
Строка: str = "(a b c) d e f [[g h i]]"
.Ожидаемый результат:
(a b c)
d e f
[[g h i]]
Пример кода:
vector<string> token;
string str = "(a b c)d e f[[g h i]]";
string bracketS = "()[]";
istringstream ss(str);
string section;
string tok;
while (getline(ss,section)) {
size_t start = 0;
size_t end = section.find_first_of(bracketS);
while (end != string::npos) {
tok = section.substr(start, end - start);
token.push_back(tok);
start = end + 1;
end = section.find_first_of(bracketS, start);
}
}
И вывод без скобок:
a b c
d e f
g h i
Попытался настроить мой section.substr(start-1, end - start+2)
Затеммой вывод:
(a b c)
) d e f [
[g h i]
Почему средний вектор не так.
Также попытался сделать strtok.Но вывод такой же, как и первый.
Есть ли другой способ сделать это?