CRYPTER-DECRYPTER EN UTILISANT L'ALGORITHME DE CESAR

Signaler
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
 Utilisateur anonyme -
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51032-crypter-decrypter-en-utilisant-l-algorithme-de-cesar

Utilisateur anonyme
Okey, merci, j'avais pas compris le
// tu traites ici
dans ton code ^^
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Il n'y a plus notion d'itérateur "texte[i]" puisqu'on déplace le pointeur.

Un truc dans ce genre:
void cesar_crypt(int decallage, char *texte)
{
char c;
int decMin = decallage - 'a';
decallage -= 'A';
while(c = *texte) {
if(c > 'z') goto nextCHR;
if(c < 'A') goto nextCHR;
if(c <= 'Z') goto goMAJ;
if(c < 'a') goto nextCHR;
c = 'a' + (c + decMin) % 26;
goto goREPLACE;
goMAJ:
c = 'A' + (c + decallage) % 26;
goREPLACE: *texte = c;
nextCHR: texte++;
}
}
Utilisateur anonyme
Si j'ai bien compris, je dois remplacer
for(i=0 ; i<strlen(texte) ; i++)

par

char i;
while(i = *texte) {

puis mettre

if ('a' <= texte[i] && texte[i] <= 'z')
texte[i] = 'a' + ((texte[i] - 'a') + decallage)%26;
else

if ('A' <= texte[i] && texte[i] <= 'Z')
texte[i] = 'A' + ((texte[i] - 'A') + decallage)%26;
else
{
}
et après

texte++;
}

C'est sa ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
OUPS a la relecture:
char a;
while(a = *texte) {
// TU TRAITES ICI
texte++;
}

et non pas *texte++ comme dit dans comment précédent.
Afficher les 7 commentaires