Ich bin neu in der Programmierung und C# und ich versuche, Atbash Cipher in C# zu machen. So bin ich bei diesem Problem fest: die Chiffre lief gut, aber sie setzen keine Leerzeichen oder Sonderzeichen (die nicht codieren müssen) in das Ergebnis. Ich habe versucht es zu machen, aber es wurde wiederholt.Atbash Cipher in C#
Gibt es also eine Möglichkeit, die Nicht-Alphabet-Zeichen zu überspringen und sie auf das Ergebnis zu setzen?
Hier ist mein Code
using System;
namespace AtbashCipher
{
class Program
{
static void Main()
{
Console.WriteLine("Atbash cipher v1.0");
Console.WriteLine();
Console.Write("Enter messages: ");
string userInput = Console.ReadLine();
Console.WriteLine();
string Alphabet = "abcdefghijklmnopqrstuvwxyz";
string AlphabetUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string result = "";
Boolean SpecialChar = false;
foreach (char c in userInput)
{
for (int i = 0; i < Alphabet.Length; i++)
{
if (c == Alphabet[i])
{
result += Alphabet[Alphabet.Length - 1 - i];
}
if (c == AlphabetUpper[i])
{
result += AlphabetUpper[AlphabetUpper.Length - 1 - i];
}
}
}
//Print result for user
Console.WriteLine("Encoded messages: " + result);
Console.WriteLine();
Console.Write("Press any key to exit.");
Console.ReadKey();
}
}
}
Haben Sie versucht, es Schritt für Schritt aka zu laufen. debuggen Sie es? Sie werden feststellen, dass Sie nie eine Zeile erreichen, die 'result + = c;' ist. –