Проблема с выводом string после её обработки C++
Вообще изначально требуется помощь в написании программы на C++ которая шифрует RU Алфавит, знаки препинания и цифры методом Цезаря ( перестановкой на 1-2 символа ). Я написал две программы разными методами и очень хотелось бы получить коментарии касательно кода и что я сделал неправильно? Проблема заключается в том, что в обоих случаях выводятся непонятные символы после отработки программы. Пример показан в скриншоте ниже. Пишу тут впервые, так что прошу прощения за возможные нарушения в порядке и оформлении :)Данная проблема появляется в обоих случаях. Что я делал? Я понял что скорее всего эта проблема заключается в кодировке, я использовал UTF-8, не особо силён в этом. В общем прошу знающих людей мне помочь как в написании программы, так и в разъяснениях почему у меня возникла данная ситуация. Код приложу ниже. Во втором случае я писал программу с встроенным алфавитом string. Там так же. Проверял в Clion и Visual Code. Как на Windows так и на Linux.
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
int index = 0;
string input;
cout << "Введите данные для шифровки" << endl;
getline(cin, input);
const int number = input.size();
char cipher[number - 1];
for (int i = 0; i < number; i++)
{
int symbol = input[index];
symbol += 1;
cipher[index] = symbol;
index += 1;
}
cout << cipher << "\n";
int amount = strlen(cipher);
char decipher[amount];
index = 0;
for (int a = 0; a < amount; a++)
{
int mark = cipher[index];
mark -= 1;
decipher[index] = mark;
cout << decipher[index];
index += 1;
}
return 0;
}
