Проблема с выводом 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;
}

введите сюда описание изображения


Ответы (0 шт):