using System; using System.Collections.Generic; using System.Text; namespace caesar_ciqher { class ccipher { static void Main(string[] args) { string text, ec; int n; do { Console.Write("Encrypt, Decrypt, or Quit?: "); ec = Console.ReadLine(); ec = ec.ToLower(); } while (!(String.Equals(ec, "d") || String.Equals(ec, "e") || String.Equals(ec, "q"))); if (String.Equals(ec,"d")) { Console.Write("Enter cipher text: "); text = Console.ReadLine(); Console.Write("Enter # of characters to move: "); n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Plain text: {0}", crypt(text, n, false)); } else if (String.Equals(ec, "e")) { Console.Write("Enter plain text: "); text = Console.ReadLine(); Console.Write("Enter # of characters to move: "); n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Cipher text: {0}", crypt(text, n, true)); } else { Console.WriteLine("Bye!"); return; } } static string crypt(string text, int n, bool encrypt) { string alpha = "abcdefghijklmnopqrstuvwxyz"; StringBuilder omega = new StringBuilder(); text = text.ToLower(); for (int i = 0; i < text.Length; i++) { for (int j = 0; j < alpha.Length; j++) { if (String.Compare(text, i, alpha, j, 1) == 0) { if (!encrypt) { if (j - n < 0) { omega.Append(alpha, alpha.Length + (j - n), 1); } else { omega.Append(alpha, j - n, 1); } } else { if (j + n > 25) { omega.Append(alpha, (j + n) - alpha.Length, 1); } else { omega.Append(alpha, j + n, 1); } } } } } return omega.ToString(); } } }