IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

probleme avec le cryptage de cesar


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut probleme avec le cryptage de cesar
    j'ai trouvé ce code dans la section des codes sources et j'ai essaye de le compiler mais tous mes essais ont causé un message d'erreur lors de la compilation "erreur fatal du processeur"
    voila ce que j'ai ecrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <stdio.h>
    void cesar (char *str, int decalage)
    {
       if (str)
       {
          const char alphabet[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                                 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
                                 'u', 'v', 'w', 'x', 'y', 'z'};
          int maj = 0;
     
          while (*str)
          {
             int i;
     
             maj = isupper (*str);
             *str = tolower (*str);
             for (i = 0; i < 26; i++)
             {
                if (alphabet[i] == *str)
                {
                   *str = alphabet[(i+decalage)%26];
                   if (maj)
                   {
                      *str = toupper (*str);
                   }
                   break;
                }
             }
             str++;
          }
       }
    }
     
    void main (void)
    {
       char *text;
       int decal=3:
     
       gets (text):
       cesar (text,decal);
       puts (text);
    }
    merci de votre aide

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par abdoue2004
    [...] un message d'erreur lors de la compilation "erreur fatal du processeur" [...]
    Il y a vraiment une faute dans le message du compilateur ou tu n'as pas recopié exactement le message [1] ?

    Aussi, . Merci.

    [1] - Et, dans ce cas, merci de nous donner le message EXACT : ne pas oublier que peu des membres de ce forum sont devins.

  3. #3
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par abdoue2004
    tous mes essais ont causé un message d'erreur lors de la compilation "erreur fatal du processeur"
    Je ne vois pas vraiment tout vient ce message. As tu reussi a compiler autre chose avec succes avec ton compilateur ?

    Sinon J'aurais quelques remarques concernant ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void main (void)
    {
       char *text;
       int decal=3:
     
       gets (text):
       cesar (text,decal);
       puts (text);
    }
    * C'est int main(void) pa void main(void)
    * gets est dangeureux, il ne permet pas de controler la taille de la saisie, ce qui peut provoquer des debordements de buffer.
    * Et surtout, text est un pointeur non-initialise (il ne contient donc pas une adresse valide), ce qui est un bug grave.

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par abdoue2004
    j'ai trouvé ce code dans la section des codes sources et
    Celui qui a écrit ça mérite d'être fusillé tous les matins avec des balles rouillées pendant une semaine.
    Une fois les ':' remplacées par des ';' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `cesar':
    main.c:14: warning: implicit declaration of function `isupper'
    main.c:15: warning: implicit declaration of function `tolower'
    main.c:23: warning: implicit declaration of function `toupper'
    main.c: At top level:
    main.c:33: warning: return type of 'main' is not `int'
    main.c: In function `main':
    main.c:34: warning: 'text' might be used uninitialized in this function
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 3 seconds)
    0 errors, 5 warnings
    De plus, l'usage de gets() est proscrit pour les nouveaux développements. Cette fonction est buggée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Hello world
    Khoor zruog
     
     
    Press ENTER to continue.
    Trop cool, on dirait du Klingon !

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    [...] Une fois les ':' remplacées par des ';' :

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [...]
    main.c:2: error: syntax error before ':' token
    (...]
    [...]
    Tu en as peut-être oublié un.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par David.Schris
    Tu en as peut-être oublié un.
    J'ai surtout oublié de remettre à jour la liste des erreurs... Le téléphone a sonné...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut
    merci a tous qui on me repondu
    croyez moi c'est mon premier essai de compiler un programme sous c

Discussions similaires

  1. [AIDE]Petit problem de ma part avec le cryptage de Blowfish !
    Par ZeToTi dans le forum Bibliothèque standard
    Réponses: 2
    Dernier message: 06/01/2009, 09h09
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo