• 01-05-2008, 04:40:25
    #1
    C# 'da ekrana girilen yanyana karakterlerin herbirini tek tek ele almak mümkün mü?

    Amacım girilen karakterleri şifrelemek, ya da şifrelenmiş karakterleri eski haline çevirecek bir program hazırlamak.

    Örneğin:
    System.Console.WriteLine("Lütfen şifrelenecek karakterlerinizi girin:");

    //ekrana aynen şunu giriyoruz misal "K~\"


    program her karakteri ayrı ayrı algılayacak. Ve ben her karakteri rahatlıkla başka bir karaktere dönüştürebileceğim böylelikle...

    K G'ye dönüşecek misal
    ~ ='e dönüşecek misal
    \ &'ye dönüşecek misal

    Ekran çıktısı.

    "G=&" olacak. Tabi bunları çevirmeyi ben yapacağım, benim istediğim ekrana girilmiş olan yanyana karakterleri tek tek ele alabilmek.
  • 01-05-2008, 05:39:33
    #2
    Üyeliği durduruldu
    valla benim aklıma söyle birşey geldi ilk karekterleri alırsın sifrelencek veriden mesela tek tek karekteleri asciiye cevirirsin örneğin onuda mesela 5 ile toplarsın 10'a bölersin 20 ile toplarsın felan filan sonra cözerkende tam tersi yolunu izleyerek cözersin
    mesela örnek bi uygulama vereyim
    char a = 'A';
    int ascii = (int)a;
    int sifrele = ascii + 5;
  • 01-05-2008, 11:26:45
    #3
    hocam önce gets() ile yazıyı çek, sonra strlen() ile yazının uzunluğunu bul, sonra da o uzunlukla da bi for döngüsüne sok, sırayla karakterleri okut. biz bu yöntemi kulanıyoruz, yazı yerine rakam girildiğinde falan uyarı mesajı vermek için, tek tek okutuyoruz karakterleri. seninde işine yarayacaktır.
  • 03-05-2008, 00:58:50
    #4
    C# ta bu iş için hazırlanmış bi metod var kullanmak istersen;

    ToCharArray() metodu..bu metod bir string değişkeninde bulunan karakterleri tek tek bir karakter dizisine atar..bunu ve arkadaşımızın da dediği gibi ascii kodlarıyla şifrelemeyi aşağıdaki kodla yapabilirsin..umarım işine yarar...



    Console.WriteLine("Lütfen şifreyi giriniz:");
    string sifre;
    sifre = Console.ReadLine();
    char[] karakterler;
    karakterler = sifre.ToCharArray();
    string sifrelenmis="";
    for (int i = 0; i < karakterler.Length; i++)
    {
    int ascii = (int)karakterler[i];
    ascii = ascii + 5;
    sifrelenmis = sifrelenmis + (char)ascii;
    }
    Console.WriteLine("Şifrenizin şifrelenmiş şekli: " + sifrelenmis);