Не возвращает исходную строку - C#

Узнай цену своей работы

Формулировка задачи:

Ещё один пример из Шилдта. Задача была переделать слово для шифрования с типа int в тип string. Не пойму как можно разрешить данный вопрос. можете подсказать ошибки?
Листинг программы
  1. string msg = "Совершенно секретно. Алексу Юстасу";
  2. string encmsg = "";
  3. string decmsg = "";
  4. string key = "pyramida";
  5. int k;
  6. Console.WriteLine("Первоначальное сообщение");
  7. Console.WriteLine(msg);
  8. Console.Write("Шифрование сообщения");
  9. for (int i = 0; i < msg.Length; i++)
  10. {
  11. for (k = 0; k < key.Length; k++)
  12. encmsg = encmsg + (char)(msg[i] ^ key[k]);
  13. if (encmsg.Length >= msg.Length) break;
  14. }
  15. Console.WriteLine(encmsg);
  16. Console.WriteLine("Расшифровка сообщения");
  17. for (int i = 0; i < msg.Length; i++)
  18. {
  19. for (k = 0; k < key.Length; k++)
  20. decmsg = decmsg + (char)(encmsg[i] ^ key[k]);
  21. if (decmsg.Length >= msg.Length) break;
  22. }
  23. Console.WriteLine("\n" + decmsg);
  24. Console.Read();

Решение задачи: «Не возвращает исходную строку»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace shild03
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Encryption enc = new Encryption();
  13.             string msg = "Совершенно секретно. Алексу Юстасу";
  14.             enc.Text = msg;
  15.             Console.WriteLine($"{enc.NewText}");
  16.  
  17.             enc.Text = enc.NewText;
  18.             Console.WriteLine($"{enc.NewText}");
  19.  
  20.             using (StreamReader reader = new StreamReader
  21.                 (File.Open(@"E:\Encryption.txt",
  22.                 FileMode.OpenOrCreate), Encoding.BigEndianUnicode))
  23.             {
  24.                 enc.Text = reader.ReadToEnd()
  25.                     ?? msg;
  26.                 if (string.IsNullOrWhiteSpace(enc.Text))
  27.                     enc.Text = msg;
  28.             }
  29.  
  30.             using (StreamWriter writer = new StreamWriter
  31.                 (File.Open(@"E:\Encryption.txt",
  32.                 FileMode.OpenOrCreate), Encoding.BigEndianUnicode))
  33.             {
  34.                 writer.Write(enc.NewText);
  35.             }
  36.  
  37.             Console.ReadKey(false);
  38.         }
  39.     }
  40.     class Encryption
  41.     {
  42.         public string Key { get; set; } = "pyramida";
  43.         public string Text { get; set; }
  44.         public string NewText => new string(Text.ToCharArray()
  45.             .Select((c, i) => (char)(~c ^ Key[i % (Key.Length - 1)]))
  46.             .ToArray());
  47.     }
  48. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы