Cryptage de César

Cryptage de César - C - Programmation

Marsh Posté le 28-11-2014 à 18:47:26    

Bonsoir, je veux faire un programme de codage suivant la methode de César sur les lettres de 'A' a 'Z', ma 1ere fonction controle le message avant le codage: garder que les lettres de A a Z (majuscules) et supprimer le reste, puis la 2eme fonction effectue le décalage... voila mes fonctions:  
 
 
 
 
char supprimer_lettres (char * chaine)
  {
    char * p ; /* pointeur aide */
     
     for ( ; *chaine ; chaine++)
      {
           
          if (*chaine >= 'A' && *chaine <= 'Z')
            chaine++;        
          else
            {
             p=chaine;
             p++;
             *chaine = *p;  
            }  
       }  
      return *chaine ;
  }  
 
           
 
 
char code_a_decalage_fixe ( char * chaine , int k) // k le decalage
  {
 
     char tab[26] = {'A','B',...., 'Z'};
     tab *t;                                  // ici je veux declarer un pointeur de type tab mais sa m'affiche une erreur !
     int i=0,j=0;
     
     supprimer_lettres(chaine);
     
     while (j<26 && i<strlen(chaine))
      {
             if ( *(chaine+i) != *(t+j) )
                  j++;
             *(chaine+i) = *(t+(j+k)) ;  
             i++;
             j++;
      }  
  }
 
 
Comment faire  :??:  Merci

Reply

Marsh Posté le 28-11-2014 à 18:47:26   

Reply

Marsh Posté le 29-11-2014 à 01:59:41    

Salut
 
tab est le nom de ta variable, donc tu ne peux pas avoir un pointeur de type tab. Tu peux avoir un pointeur vers le type de tab, donc un char*
cad que tu peux faire

Code :
  1. char *t = tab;

pour avoir t qui pointe sur le debut de tab.
 
Mais je pense que ton algo n'est pas du tout bon, ou alors j'ai rien compris à ce que tu veux faire....
Et surtout ton utilisation des pointeurs pour supprimer/decaler des lettres est ultra dangereuse pour ne pas dire fausse. La ça va très vite te peter à la figure.


Message édité par remmog le 29-11-2014 à 02:00:30
Reply

Marsh Posté le 29-11-2014 à 03:18:21    

naabiilaa a écrit :


Comment faire  :??:  Merci


Commence par simuler ton algo étape par étape sur un papier quadrillé avant de te lancer dans le codage en C. Fais en sorte que l'algo sur le papier soit le plus simple possible.
Ensuite retranscris.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 29-11-2014 à 16:55:38    

Le chiffre de César n'est pas très sûr, je te recommande plutôt de l'AES-CBC-256+RSA2048+HMAC-SHA256, bonne implémentation!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed