вывод 100% совпадает с примером суть в том чтобы сделать из файла строку, заменить в ней все открывающие на "†", а закрывающие на "‡". потом из строки сделать массив символов. итератор идет по массиву и считает x. переменная x это количество открытых тегов. когда из x вычитается единица и x снова равен 0, значит найден нужный закрывающий тег. берем из строки индекс следующего после предыдущего открывающего тега (int start), индекс текущего элемента массива (int end), вырезаем нужный нам кусок строки и заменяем все "†" и "‡" обратно на теги. удаляем из массива два этих тега и начинаем заново цикл (я знаю что получился какой-то монстр, но это все что я могу)