cryptage d'un fichier par la méthode césar
Bonjour,
je dois utilisé le cryptage par la méthode césar (décalage de n lettres dans l'alphabet) et mon programme (qui doit utiliser des fichiers) me rajoute des caractères après la chaine crypté correctement (selon le nombre de caractères : moin de 6 ou plus de 16).
Je vous copie mon fihier source ici et j'attend vos commentaires et suggestions !
Code:
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
|
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
FILE * f;
FILE * g;
f=fopen("cesarclr.txt","r");
g=fopen("cesarcrt.txt","w");
char clr[60],crt[60];
int i,n;
if(f==NULL || g==NULL)
{printf("erreur");}
else
{
fgets(clr,80,f);
printf("chaine lu : %s\n",clr);
n=strlen(clr);
for(i=0;i<n;i++)
{
if((clr[i]!=0)&&(clr[i]!=' '))
{
crt[i]=clr[i]-0x03;
if (crt[i]<'a')
{crt[i]=crt[i]+26;}
}
else
{crt[i]=clr[i];}
}
fprintf(g,"%s",crt);
printf("chaine crypte : %s\n\n",crt);
}
fclose(f);
fclose(g);
system("pause");
return 0;
} |
je pense donc que mon programme doit planter ici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
for(i=0;i<n;i++)
{
if((clr[i]!=0)&&(clr[i]!=' '))
{
crt[i]=clr[i]-0x03;
if (crt[i]<'a')
{crt[i]=crt[i]+26;}
}
else
{crt[i]=clr[i];}
} |
Merci d'avances pour vos réactions, ceci permettrai de me débloquer car ce programme et le début d'une suite de différents autres programmes, qui eux, fonctionne correctement.
Merci encore!