Если у вас вопросы на таком уровне (что делать если в массиве нельзя удалять и как это оптимизировать) - то делать свой мир и свою игру еще ОЧЕНЬ рано.
Самый легкий - тот к которому написано дохрена солюшенов, есть примеры, разборы механик и прочее.
Самый сложный - новый, который никто никогда не делал.
А почему арм и малина? Это ж несолидно. Делайте свои микроконтроллеры! Добывайте кремний, разрабатывайте схему. А там и свой ASM и ось подтянутся.
Вот ваш вопрос примерно из той же категории, если что.
Строки как массив char-ов в с/с++ сравниваются функцией strcmp. У вас я ее не вижу.
А вообще использовать строку для образования - ну как то странно. Используйте например enum - у вас же набор значений все равно четко определен.
Скомпилировать обратно - 50/50. С танцами с бубном - может быть. Внести изменения и скомпилировать обратно - ну раз вы задаете такой вопрос то 99% что нет, не получится. Сложность очень высокая.
Раз вы новичок - то работайте лучше с std::string - упростите себе жизнь. У него есть и copy с какого и по какой символ, и много других плюшек.
Пример тут: www.cplusplus.com/reference/string/string/copy
Прям вот его без извращений в виде вайна-виртуалок - нет. Можно использовать mingw32msvc. Как - установить мингв, прописать пути к компилятору и компоновщику в среде разработки.
То что вы хотите - это не подмена. Это совершенно другая функция. И если компилятор считает, что точка входа должна быть с другим прототипом - то у вас два варианта - смириться или переписать компилятор.