2012-04-06 14 views
-3

ich den folgenden Code bin mit dem caesar Chiffrier-Algorithmus anzuwenden, Aber hat nicht funktioniert guterorr in meinem Code

den Code

foreach (char t in richTextBox1.Text) 
     { 
      char encrypted = (char)(t + 3); 
      richTextBox2.Text = encrypted.ToString(); 
     } 

Wenn der Klartext ‚Mostafa‘ ist Rückkehr 'd' nur das letzte Zeichen nehmen was kann ich tun.

Dank

+0

@JustinPihony: Scheint Benutzer sind verzweifelter als Sie denken; p – leppie

+2

@leppie - die Frucht war einfach zu niedrig hängen :) – KevinDTimm

+0

Der char-Wert von 'a' + 3 wäre gleich' d' Ihr Code tut genau das, was es sollte machen. Natürlich möchten Sie '+ =' anstelle von '=' verwenden, wenn Sie die gesamte Zeichenfolge anstelle des letzten Zeichens in der neuen Zeichenfolge anzeigen möchten. –

Antwort

1

Versuchen mit diesem:

StringBuilder enrypted = new StringBuilder(); 
foreach (char t in richTextBox1.Text) 
{ 
    encrypted.Append((char)(t + 3));     
} 
richTextBox2.Text = encrypted.ToString(); 
1
foreach (char t in richTextBox1.Text) 
{ 
    char encrypted = (char)(t + 3); 
    richTextBox2.Text = encrypted.ToString(); 
} 

Da Sie die richTextBox2.Text zu einem einzelnen Zeichen zuweisen. Der letzte ist zufällig der, der angezeigt wird. Ihre Ergebnisse sind nicht kumulativ.

Sie können wie diese stattdessen etwas tun:

var sb = new StringBuilder(); 
foreach (char t in richTextBox1.Text) 
{ 
    char encrypted = (char)(t + 3); 
    sb.Append(encrypted); 
} 
richTextBox2.Text = sb.ToString(); 
1

ändern

richTextBox2.Text = encrypted.ToString(); 

zu

richTextBox2.Text += encrypted.ToString(); 
0

Weil ich wirklich wie LINQ

char[] text = richTextBox1.Text.ToCharArray(); 
richTextBox2.Text = new String(text.Select(ch => (char)(ch + 3)).ToArray());