24 Aralık 2014 Çarşamba

Sezar Şifrelemesi C Kodu (Fonksiyon Kullanarak)

Öncelikle sezar şifrelemesinin ne olduğundan bahsetmek istiyorum. Sezar şifrelemesi bir kelimede veya cümledeki her bir harfi alfadeki sonraki/önceki harflere ötelenmesidir.


Yandaki resimde 3 birim öteleme ile yapılan şifreleme görülmektedir. Bu şifrelemeyi çözmek
çok zorlayıcı değildir. Doğru ötelemeyi bulmak için 25 farklı deneme yapmak yeterlidir.





Bu şifreleme yöntemi için
kullanılabilinecek bir C Kodu:

#include 
#include 
 void sifrele(char dizi[],int kural);
   void sifrecoz(char dizi[],int kural);
   int i;
   void sifrele(char dizi[],int kural){
       for(i=0;dizi[i];i++){
        dizi[i]+= kural;
       }
   }
   void sifrecoz(char dizi[],int kural){
   for(i=0;dizi[i];i++){
    dizi[i] -= kural;
   }
   }
int main()
{
    char cumle[150];
    int sec,kar;
    printf("Sifrelemek icin ->1\nSifre Cozmek icin ->2\nLutfen islem turunu seciniz:");
    scanf("%d",&sec);
if(sec == 1){
    printf("Cumlenizi giriniz: ");
    getchar();
    gets(cumle);
    //fgets(cumle,sizeof(cumle),stdin);
    printf("Kac karaktere gore sifrelensin ? :");
    scanf("%d",&kar);
    sifrele(cumle,kar);
    printf(cumle);

} else if(sec == 2){

    printf("Cumlenizi giriniz:");
    getchar();
    gets(cumle);
    printf("Kac karaktere gore cozulmeli ? :");
    scanf(" %d",&kar);
    sifrecoz(cumle,kar);
    printf(cumle);
}else {
    printf("Hatali secim.");
    }

    return 0;
}
gets fonksiyonundan önce neden getchar(); kullandığımı önceki yazımda ayrıntılı şekilde belirttim. (Bknz: C ' de gets() , fgets() Fonksiyonları Atlama Hatasının Çözümü )

0 yorum:

Yorum Gönder