/* -ed- manquait pour printf()... */
#include <stdio.h>
/* -ed- manquait pour strlen()... */
#include <string.h>
/* -ed- main() retourne int. Toujours. */
int main(void)
{
char Cle[80];
char Phrase[800];
/* -ed-
char Alpha[27] = {'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','\0'};
Une facon compliquee d'ecrire
*/
char Alpha[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
char cod[800];
int posCle = 0;
printf("Cle:" );
/* -ed- manque un '\n' ou un fflush (stdout);
http://mapage.noos.fr/emdel/notes.htm#fflush_stdout
*/
fflush (stdout);
scanf("%s", Cle);
printf("Phrase a coder:" );
fflush (stdout);
scanf("%s", Phrase);
/* -ed- construction interdite en C90... Ajoute bloc. */
{
int lenphrase = strlen(Phrase);
int lencle = strlen(Cle);
int i;
char LetCle;
char* PosLetCle;
char Let;
char* Pos;
int NouvPos;
for (i = 0; i < lenphrase; i++)
{
/* on gere la progression dans la cle */
posCle = posCle + 1;
if (posCle > lencle)
posCle = 1;
/* on determine quelle est la lettre cle et sa position dans l'alphabet */
LetCle = Cle[posCle];
PosLetCle = strchr(Alpha, LetCle);
/* on determine la position de la lettre a coder et le decalage a appliquer */
Let = Phrase[i];
Pos = strchr(Alpha, Let);
NouvPos = *Pos + *PosLetCle;
/* -ed- se renseigner sur l'operateur MODULO (%) */
if (NouvPos > 26)
NouvPos = NouvPos - 26;
{
/* -ed-
char chartest = Alpha[NouvPos];
pas utilise. C'est louche... */
/* -ed-
char *strcat(char *cod, const char *chartest);
c'est quoi ce prototype au mileu du code ? Il est sorti de sa cage ? */
/* -ed-
printf("la phrase codee est:\n", cod);
manque un formatteur. */
printf("la phrase codee est: '%s'\n", cod);
}
}
}
return 0;
}
|