programmation vigenère en language C
bonjour,
j'aimerai avoir un peu d'aide sur mon programme qui fonctionnne pas. Je dois faire un programme en virgènere qui code les espaces, les chiffres, les majuscules et les minuscules uniquement. pouvez-vous m'aider ? De plus à la ligne 53, on me dit "subscripted value is neither array nor pointer nor vector" qui correspond a cettte ligne la " msgcode[i] = ((phrase[i] + nombre2[i]) + 62) + 'a';". Je suis débutant en language C et je me debrouille pas trop bien, j'ai beaucoup mal et j'aimerai vraiment un coup de main pour ce projet. merci beaucoup d'avance
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#include <stdlib.h>
#include<stdio.h>
#include<string.h>
int main()
{
// int a=0;
int i;
char nombre;
char nombre2;
char nombre3;
// int alphanum;
// int nombre4;
int j;
int alphanum;
char alpha[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz";
// char alphaMIN []="abcdefghijklmnopqrstuvwxyz";
char num[]="1234567890";
char phrase[1000];
char phrasecode[1000]="";
char cle[nombre];
char msgcode[nombre];
char msgdecode[nombre];
puts("entrer votre message : \n");
gets(phrase);
puts("entre votre cle: \n ");
gets(cle);
nombre=strlen(phrase);
nombre2=strlen(cle);
alphanum=strlen(alpha);
printf("chaine phrase = %d \n",nombre);
printf("Chaine cle = %c \n",nombre2);
printf("chaine de alpha = %d \n",alphanum);
//pour repeter la cle
for(i = 0, j = 0; i < nombre; ++i, ++j)
{
if(j == nombre2)
j = 0;
cle[i] = cle[j];
}
cle[i] = '\0';
//pour coder :
phrasecode[i]=phrase[i]+cle[i%nombre2]-nombre3;
for(i = 0; i < nombre; ++i)
{
msgcode[i] = ((phrase[i] + nombre2[i]) + 62) + 'a';
msgcode[i] = '\0';
}
// phrasecode[i]<alphanum;
printf("Caractere %d: %c \n cle : %c \n code : %c\n",i,phrase[i],cle[i%nombre2],phrasecode[i]);
printf("Votre phrase est: %s \n",phrase);
//phrasecode[i]=alpha[phrasecode];
//pour décoder :
// phrasecode[i]=alpha*(phrase(65+(nombre+nombre2)%26));
*/printf("Votre phrase coder est: %s \n",phrasecode)
return 0;
} |