Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_END.doc
Скачиваний:
6
Добавлен:
24.09.2019
Размер:
173.06 Кб
Скачать

Исходный код

#include <stdio.h>

#include <string.h>

// файлы, буферы ввода, счетчики

FILE *f1, *f2;

char s[105], *pos;

int code, k = 0;

// ключ шифрования

const int key[10] = { 5, 20, 3, 24, 22, 12, 13, 1, 2, 9 };

int main()

{

// ввод имени входного файла

printf("Enter file name: ");

scanf("%100s", s);

// открытие входного файла

if((f1 = fopen(s, "r")) == NULL)

{

printf("Can't open input file!\n");

return -1;

}

// поиск точки в имени файла (с конца)

pos = strrchr(s, '.');

if(pos == NULL) pos = s + strlen(s);

// замена/добавление нового расширения

pos[0] = '.';

pos[1] = 'o';

pos[2] = 'u';

pos[3] = 't';

pos[4] = '\0';

// открытие выходного файла

if((f2 = fopen(s, "w")) == NULL)

{

printf("Can't create/open output file!\n");

return -1;

}

// читаем посимвольно входной файл

while((code = fgetc(f1)) != EOF)

{

if(code >= 'A' && code <= 'Z')

{

// шифрование большой буквы

code = 'A' + ((code - 'A' + key[k]) % 26);

}

else if(code >= 'a' && code <= 'z')

{

// шифрование прописной буквы

code = 'a' + ((code - 'a' + key[k]) % 26);

}

// выводим результат в файл

fputc(code, f2);

// увеличиваем k

++k;

if(k >= 10) k = 0;

}

// закрываем файлы, выводим сообщение о завершении

printf("Work finished! Look file %s\n", s);

fcloseall();

return 0;

}

Пример выполнения

Ключ:

const int key[10] = { 5, 20, 3, 24, 22, 12, 13, 1, 2, 9 };

Исходный текст (text.txt):

Запуск программы:

Зашифрованный текст (text.out):

Список литературы:

1. Б.Керниган, Д.Ритчи, А.Фьюер. Язык программирования Си. Задачи по языку Си. М.: Финансы и статистика, 1985.

2. М.Уэйт, С.Прата, Д.Мартин. Язык Си. Руководство для начинающих. - М.: Мир, 1988.

3. М.Болски. Язык программирования Си. Справочник. - М.: Радио и связь, 1988.

4. Л.Хэнкок, М.Кригер. Введение в программирование на языке Си. - М.: Радио и связь, 1986.

5. М.Дансмур, Г.Дейвис. ОС UNIX и программирование на языке Си. - М.: Радио и связь, 1989.