Soru
Sezar şifrelemesi, bir yazıdaki harflerin yerlerinin değiştirilmesi sonucunda elde edilir. Bu şifrede, her harf o harften bir (ya da birkaç) sonraki harf kullanılarak yazılır.
Programcıdan Türkçe karakter kullanılmadan girilen metindeki (girilenMetin) harfleri bir sonraki harflere (tek harf atlamalı) dönüştürüp (sifrelenmisMetin) basit (yer değiştirme) şifreleme yapması istenmektedir.
Örnek
Girdi | Çıktı |
---|---|
girilenMetin: test | sifrelenmisMetin: uftu |
girilenMetin: abcd | sifrelenmisMetin: bcde |
Çözüm - C#
internal class Program
{
private static void Main(string[] args)
{
string girilenMetin = "Bu bir denemedir";
// Girilen düz metini, tek tek harflere dönüştür ve karakter dizisine at
char[] karakter = girilenMetin.ToCharArray();
foreach (char tekHarf in karakter)
{
// Her bir karakteri bir sonraki karaktere dönüştür
string sifrelenmisMetin = Convert.ToChar(tekHarf + 1).ToString();
// Klavye düzeninde değişik karakterlere gelen harflerde değişim yaparak yazdır
Console.Write(sifrelenmisMetin
.Replace('[', 'A')
.Replace('!', ' ')
.Replace('Z', 'A'));
}
Console.Read();
}
}
Çözüm - Java
public class Main {
public static void main(String[] args) {
String girilenMetin = "Bu bir denemedir";
// Girilen düz metini, tek tek harflere dönüştür ve karakter dizisine at
char[] karakter = girilenMetin.toCharArray();
for (char tekHarf : karakter)
{
// Her bir karakteri bir sonraki karaktere dönüştür
String sifrelenmisMetin = String.valueOf((tekHarf += 1));
// Klavye düzeninde değişik karakterlere gelen harflerde değişim yaparak yazdır
System.out.print(sifrelenmisMetin
.replace('[', 'A')
.replace('!', ' ')
.replace('Z', 'A'));
}
}
}