Дана строка, состоящая из элементов и операторов. Операторами являются скобки и знаки +. Элементами являются символы. Вид строки, количество элементов и операторов может быть произвольным.
Например: (X + (V+M+A) + C +(M+L + (C + C) + C)).
Необходимо отсортировать элементы в строке по алфавиту, с учётом скобок.
В данном случае должно получиться: ((A+M+V)+C+(C + (C+C) + L + M)+X).
Реализуйте функцию А, которая получает на вход строку данного вида и возвращает отсортированную строку.
Реализуйте два тестовых приложения для тестирования данной функции:
Тестовое приложение 1. Консольное. Должно сгенерировать N случайных строк с операторами и символами. Строки должны быть как можно более разнообразными. Число N передается в командной строке. Строки пишутся в файл, путь к которому так же передается в командной строке.
Тестовое приложение 2. Должно обрабатывать файл, сформированный тестовым приложением 1 и подавать эти строки для обработки в функцию А. Результатом должен быть файл с суффиксом к входному имени "sorted", в котором записаны все входные строки в отсортированном виде.
Язык программирования C++. Для сборки следует использовать CMake.