Шифрование методом перестановки, исправить код - C#
Формулировка задачи:
Здравствуйте.
У меня есть задание написать шифр перестановками. То есть например мы вводим "ключ"- "банан". Из него генерируется другой ключ. В этом случае ключ будет 31425. Шифруемое сообщение будет разбиваться на блоки по длине ключа и изменяться по ключу, каждый блок отдельно, затем записываться в выходную строку.
Проблема в том, что эту программу надо написать на c#, с которым я не очень дружу. И преподавателя по этому предмету у нас нет. И я запуталась с типами данных. Например как я буду генерировать ключ. Я полагаю, что я должна идти в цикле по алфавиту с начала до конца и каждую следующую букву алфавита искать во введенном "ключе". Если она найдена, то на место j, ставить цифру, которая идёт по порядку. Например буква "а". сначала j=2, мы присваиваем key[j]=1. потом идём дальше. Встечаем ещё одну "а". Теперь j=4, key[j]=2 и тд. Но. Как это всё объяснить программе? У меня получается что key типа string. Сначала она пустая. А записать посимвольно я её не могу..
Вот мой кусок кода:
Помогите, пожалуйста, разобраться...
string input = ""; string output = ""; string inputkey = ""; string key; string p1 = ""; int c = 1; //создание русского алфавита char ch; int n = 0; char[] ru_mass = new char[32]; for (int i = 1072; i <= 1103; i++) { ch = System.Convert.ToChar(i); ru_mass[n] = ch; n++; } //Console.WriteLine(ru_mass); Console.WriteLine("Введите сообщение"); input = Console.ReadLine(); Console.WriteLine("Введите ключ"); inputkey = Console.ReadLine(); if (input.Length < inputkey.Length) Console.WriteLine("длина ключа не может быть больше длины сообщения"); else { for (int i = 0; i < ru_mass.Length; i++) for (int j = 0; j < inputkey.Length; j++) { if (inputkey[j] == ru_mass[i]) { key[j] = c;//вот здесь я не знаю как сделать. с-просто счётчик типа int c++; } }
Решение задачи: «Шифрование методом перестановки, исправить код»
textual
Листинг программы
for (int i = 0; i < ru_mass.Length; i++) { for (int j = 0; j < inputkey.Length; j++) { if (inputkey[j] == ru_mass[i]) { key.SetValue(c, j); c++; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д