Закодировать текст шифром Цезаря - C (СИ)
Формулировка задачи:
Нужна программа, которая будет считывать текстовое сообщение из файла и зашифровывать его при помощи шифра Цезаря(например есть ключ 123. и сообщение "привет" после расшифровки будет иметь вид:"ртмгзх", то есть сдвигается вперед по алфавиту на цифру из ключа ). потом программа должна суметь расшифровать. но если не хочется сильно заморачиваться, то помогите хотя бы с процессом зашифровки
Решение задачи: «Закодировать текст шифром Цезаря»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int x,y; int k = 1; //начальный ключ int n = 64; //мощность алфавита, оно же количество символов (в данном варианте без буквы Ё) 64 - 32 от "а" до "я" и 32 от "А" до "Я" FILE *input = fopen("ceaser.txt","rt"); //открываем файл для чтения FILE *encode = fopen("encoded_ceaser.txt","w+t"); //создаём файл для записи и чтения FILE *decode = fopen("decoded_ceaser.txt","wt"); //создаём файл для записи //Проверяем удалось ли нам открыть файл if(!input) { perror("ceaser.txt"); //выводим сообщение об ошибке system("pause"); exit(1); //выходим из программы } printf("Coding text!\n"); //Шифрование while((x=fgetc(input)) != EOF) //считываем из файла по символу сдвигая его согласно ключу { if(x >= 192 && x<= 255) { y = (x-192+k)%n+192; k++; if(k>3) k=1; } else { y = x; } fputc(y,encode); //вывод зашифрованного символа в файл } printf("Coding complete!\n"); //Расшифровка fseek(encode,0,SEEK_SET); //откатываем указатель на начало файла, чтобы чтение шло с начала файла printf("Decoding encoded text!\n"); k = 1; //снова устанавливаем начальное значение ключа while((x=fgetc(encode)) != EOF) //считываем из файла по символу сдвигая его в противоположенную сторону согласно ключу { if(x >= 192 && x<= 255) { y = (x-192-k+n)%n+192; k++; if(k>3) k=1; } else { y = x; } fputc(y,decode); //выводим расшифрованный символ в файл } printf("Decoding complete!\n"); //закрываем файлы fclose(input); fclose(encode); fclose(decode); //ждём подтверждение пользователя любой клавишей для выхода system("pause"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д