Я новичок в C ++.У меня есть задание с просьбой выполнить ряд действий на основе ввода.Кажется, что код работает, но останавливается, когда размер моей строки достигает 16. Пробовал с 2 контрольными случаями.
Вводом является целое число, за которым следует новая строка, за которой следуют буквенно-цифровой + пробел + '[' или ']'или' <'пример: </p>
1
my ]]name]] is]] joha<n]<n doe]]]]]
код:
int main() {
int TC; cin >> TC; cin.get(); //absorb newline
while (TC--) {
string s1;
string::iterator itr = s1.begin(); //move using iterators
while (1) {
char c;
cin.get(c);
if (c == '[') { //move to first element
itr = s1.begin();
}
else if (c == ']') { // move to last element
itr = s1.end();
}
else if (c == '<') {
if (s1.length() > 0) {
itr--;
s1.erase(itr); //erase current position
}
}
else if (c == '\n') { //cout at newline char
cout << s1 << endl;
break;
}
else { //add to string
s1.insert(itr, c);
itr++;
}
cout << s1 << ' ' << s1.size() << endl; //checking
}
}
return 0;
}