/* 
   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;
}

 [PROGRAMME COMPLET] AutoExit (a sa propre page)
 [C] [Win32] Mouseloop : Ou comment faire des trucs stupides avec le pointeur de la souris
 [PHP] [INCLUDE] Récupérer des chaines quel que soit l'état de magicquotes.
 [C] [Win32] APM : Faire passer les moniteurs en green mode/locker le PC rapidement.
 [QBASIC] Lire par RS-232 les données du multimetre VC 670 et les enregistrer dans un CSV
 [C] [Portable] [Connerie] Un encodeur/décodeur ROT13 et pas que 13, en mode console.
 [mIRC] Ce client IRC n'est pas très convivial avec le mode "away". Voila qui est mieux.
 [C] [Win32] Un programme pour récupérer le nom de la chanson actuellement jouée.
 [Cµ] [PIC] [CCS] Le programme d'un chariot suiveur de ligne noire par caméra video.
10  [PROJET SOURCEFORGE] [C] Un client/passerelle en mode console pour les minichats (rmcgirr83.org) sur forums PhpBB
11  [C] [Win32] [NHC] "Workaround" d'un probleme avec le son de mon laptop lors du changement de frequence cpu
12  [C] Make-ILDA : a C routine to create ILDA files, for lasershows.