PROBLEME
Un système de cryptage consiste à utiliser une grille de traduction, qui permet de remplacer chaque lettre par une autre, de manière à rendre le texte illisible. On utilise la grille inverse pour retrouver le texte original. Ecrivez un programme qui à partir de cette grille, reconstitue le texte.
Les caractères peuvent être minuscules ou majuscules, mais sans accents ni espaces. Les autres caractères (ponctuation, '_'), sont laissés tels quels.
CONTRAINTES
- 1 <= N <= 200, où N est le nombre de caractères du message crypté.
ENTREE
La première ligne de l'entrée contient la grille de décryptage, composée de 26 caractères minuscules. La première lettre correspond à la lettre par laquelle il faut remplacer tous les 'a' du texte, la deuxième tous les 'b', etc.
La deuxième ligne de l'entrée contient un entier N : le nombre de caractères du texte à décrypter.
La troisième ligne de l'entrée contient le texte crypté.
SORTIE
Vous devez afficher une ligne sur la sortie : le texte décrypté.
CODE SOURCE
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int N;
char grille[27];
char message[255];
scanf("%s\n",grille);
scanf("%d\n",&N);
scanf("%s\n",message);
for(int i=0;i<N;i++)
{
char c=message[i];
if(c>='a'&&c<='z')
c=grille[c-'a'];
else if(c>='A'&&c<='Z')
c=grille[c-'A']+'A'-'a';
printf("%c",c);
}
printf("\n");
return 0;
}
EXPLICATIONS
Pour écrire sur la sortie standard, on utilise la fonction printf().
Pour lire sur l'entrée standard, on utilise la fonction scanf().
|