Не работает код (Шифр трисемуса), помогите!

Здравствуйте, столкнулся с такой проблемой. Написал код для шифрования и дешифрования методом Шифра Трисемуса. Но выводит он не зашифрованное слово как и задумано, а слово, которое ввели. Скажите пожалуйста, где я ошибся.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <locale.h>
#include<string.h>
#include <cstdio>
#include <conio.h>
#include <windows.h>
// 1) Создать массив для алфавита.
//2) Вписать в алфавит сначала ключ, который задаст пользователь
//3) Вписать в массив остальные буквы алфавита исключая те, которые есть в ключе.
char alphabeth[4][8] = { {'К', 'О', 'М', 'П', 'Ь', 'Ю', 'Т', 'Е'},
                                                             {'Р', 'А', 'Б', 'В', 'Г', 'Д', 'Ж', 'З'},
                                                             {'И', 'Й', 'Л', 'Н', 'С', 'У', 'Ф', 'Х'},
                                                             {'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Э', 'Я'} };
 
int res;
char word[15];
 
 
char Encryption(char s) {
    setlocale(LC_ALL, "Russian");
    for (int i = 0; i < 4; i++)
    {
        for (int f = 0; f < 8; f++)
        {
            if ((int)s == (int)alphabeth[i][f]) {
                if (i == 3)
                {
                    return alphabeth[0][f];
                }
                return alphabeth[i + 1][f];
            }
        }
    }
}
 
char Decryption(char s) {
    setlocale(LC_ALL, "Russian");
    for (int i = 0; i < 4; i++)
    {
        for (int f = 0; f < 8; f++)
        {
            if ((int)s == (int)alphabeth[i][f]) {
                if (i == 0)
                {
                    return alphabeth[3][f];
                }
                return alphabeth[i - 1][f];
            }
        }
    }
}
 
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "Russian");
    printf("Введите слово: ");
    gets_s(word);
 
    printf("Меню: \n1)Шифрование \n2)Дешифрование\nВведите цифру для выбора: ");
    scanf("%d", &res);
 
    switch (res) {
    case 1:
        for (int d = 0; d < 15; d++) {
            Encryption(word[d]);
        }
        puts(word);
        break;
    case 2:
        for (int d = 0; d < 15; d++) {
            Decryption(word[d]);
        }
        puts(word);
        break;
    default:
        printf("Нет такого числа!");
    }
    return 0;
}

word[d] = Encryption(word[d]);

1 лайк

Благодарю, все заработало!