Как исправить проблему в программе на расшифровку шифра цезаря?
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukrainian");
string text = "ІЇЬЩЙКХЧКЬСИЛЧХЙЮІЙБНИКЇИЗБДШЬЗЬЇХКИЇАХЩИІИЖИШИУФЕИШИЄУЩФЖЖИЯЗХЧ";
char arr[32] = { 'А','Б','В', 'Г', 'Д', 'Е', 'Є', 'Ж', 'З', 'И', 'І', 'Ї', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ю', 'Я', };
int plus = 1;
for (int b = 1;b < 32;b++) {
string var = text;
for (int i = 0;i < text.length();i++) {
for (int a = 0;a < 32;a++) {
if (var[i] == arr[a]) {
if ((a - plus )> 0) {
var[i] = arr[a - plus];
break;
}
else {
var[i] = arr[32 +(a - plus)];
break;
}
}
;
}
}
cout << "Ключ =" << plus-1 << "\n \n ";
for (int c = 0;c < size(var);c++) {
cout << var[c];
}
cout << "\n";
plus++;
}
}
Написал код который занимается расшифровкой шифра цезаря и программа работает (есть несколько текстов на шифре написанные).Вопрос почему буква А расшифрованая вечно превращается в букву "м" и каr исправить проблему. То есть если зашифровано слово "ВАКАНДА" то прога напишет "ВМКМНДМ" .(язык украинский )