/* Name: offset-decode Author: cLx - http://clx.freeshell.org/ Description: Pour decoder les conneries à Timmy ;)) Date: 16/08/04 18:00 Infos: On s'était amusés à faire du ROT13 pas 13 du tout ;) Ce qui etait marrant, c'est que chaque personne avait fait son propre outil. C'etait le bon vieux temps. ;) X-Capture-d'écran-ici: http://clx.freeshell.org/view.html?f=captures/LightFox_vs_cLx.png */ #define MAX_INPUT_LENGTH 4000 #include <stdio.h> void rot(int offset, char string[]) { int debut, carac, i = 0; while (offset < 0){ offset+=26; } while (string[i]) { carac = string[i++]; if (carac>='A' && carac<='Z') { debut = 'A'; } else if (carac>='a' && carac<='z') { debut = 'a'; } else { debut = 0; } if (debut) { carac = debut + (carac + offset - debut) % 26; } printf("%c", carac); } printf("\n"); } int main(void){ signed int offset = 0; char input[MAX_INPUT_LENGTH]; /* Demande de la chaine à encoder/decoder */ printf("String? "); gets(input); /* Demande du nombre de lettre de decalage */ printf("Offset? (0 to scan) : "); scanf("%i", &offset); printf("\n"); if (offset) { rot(offset, input); } else { for (offset = 0; offset <= 26; offset++){ printf("%3i: ", offset); rot(offset, input); } } return 0; }