} Код спокойно выполняется в любом онлайн компиляторе, но почему-то Visual studio ругается на то, что длина массива должна быть константой. Почему так и как это завести на визуалке?
Потому что по стандарту длина статического массива должна быть константой. Возможность задавать его переменной - расширение C++ в некоторых компиляторах. Рассчитывать на его наличие не стоит.
И <string> ты подключил, но тип string не используешь. А зря. Там длину задавать вообще не надо.