Запрашиваем имя входного файла, открываем его. В случае ошибки завершаем программу. Далее необходимо подготовить имя выходного файла, заменив в нем расширение (например, на . out). Для этого ищем в имени файла первую точку с конца функцией strrchr. Функция возвращает указатель на искомый символ или NULL в случае его отсутствия (в этом случае устанавливаем символ в конец строки, чтобы приписать расширение). Начиная с возвращенного указателя записываем в следующие 5 символов строки символы «. out\0». Открываем выходной файл с новым именем. В случае ошибки завершаем программу. Посимвольно читаем файл и, если очередной прочитанный символ является символом латинского алфавита, то шифруем его: – если это большая буква, то отнимаем от нее символ «A», тем самым получаем номер буквы в алфавите (от 0 до 25); – прибавляем к этому смещению key[k], получив номер шифрованной буквы; – получаем остаток от деления на 26, т. к. номер шифрованной буквы может оказаться больше 25; – прибавляем к полученному номеру символ «A» что и будет зашифрованным символом; – аналогичным образом шифруем и прописные символы, с той разницей, что отнимается и прибавляется символ «a»; – для остальных символов, не входящих в латиницу, ничего не предпринимаем; – записываем символ в выходной файл; – увеличиваем k, чтобы следующий символ шифровать следующим числом ключа; – если k превысило 9, то сбрасываем его в ноль (возвращаемся в начало ключа). |