ROT13

Chyba każdenu programującemu znany jest ten trywialny algorytm szyfrujący, ale na wszelki wypadek poniżej kod w C gdyby ktoś nie…

#include <stdio.h>
#include <string.h>

int main (int argc, char* argv[]) {
 int i = 0;
 for (i = 0; i != strlen (argv[1]); ++i) {
 char *c = &argv[1][i];
 if (!isalpha(*c))
 continue;

 if (*c  'Z'|| (*c) + 13 > 'z')
 (*c) -= 26;
 (*c) += 13;
 }
 printf ("%s\n", argv[1]);    
 return 0;
}

lub ciekawsza implementacja, nie mojego autorstwa, pochodząca całego zbioru implementacji tego algorytmu w różnych językach:

int main ()
{
 register char byte, cap;
 for(;read (0, &byte, 1);)
 {
 cap = byte & 32;
 byte &= ~cap;
 byte = ((byte >= 'A') && (byte <= 'Z') ? ((byte - 'A' + 13) % 26 + 'A') : byte) | cap;
 write (1, &byte, 1);
 }
}

0 Odpowiedzi do “ROT13”



  1. Nie ma jeszcze komentarzy

Dodaj komentarz