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 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| #include <stdio.h>
#include <string.h>
void saisie();
void decoup (char* chaine);
void traduc (int longueur, char* chaine);
int main(int argc, char** argv)
{
saisie();
fflush(stdin); /*sert a vider le buffer d'entrée sortie*/
getchar(); /*sert a attendre la saisie au clavier*/
return 0;
}
void saisie()
{
char chaine[256];
printf("Entrez votre phrase a traduire : ");
fgets(chaine,256,stdin);
decoup(chaine);
}
void decoup (char* chaine)
{
char * pch; /*tableau pch*/
pch = strtok (chaine," ");/*on découpe chaine du début jusqu'au premier espace*/
while (pch != NULL)/*tant que le tableau pch n'est pas vide*/
{
traduc(strlen(pch), pch);/*on appelle traduc sur le bout de chaine*/
pch = strtok (NULL, " ,.");/*on redécoupe la chaine jusqu'ai prochain espace, virguke ou point*/
}
}
void traduc (int longueur, char* chaine)
{
int i,j,k,l;
l=0;
char fin[5][8] = {" "," "," () "," |^^| "," [][] "};
char tab[26][5][8]=
{{" "," "," () "," /^^| "," <>][] "},/*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*/
char* lettre = "abcdefghijklmnopqrstuvwxyz";
for (i = 0; i<5; i++) //boucle des colonnes
{
for (j=0; j<longueur; j++) //chaque lettre de chaine
{
for (k = 0; k<27; k++) //chaque lettre de lettre
{
if (chaine[j] == lettre[k]) //k contient l'indice de la lettre a traduire
{
printf("%s ",tab[k][i]); //on affiche la ligne correspondante
break; //on sort de la boucle
}
}
}
printf("%s",fin[l]);/*affiche le flag de fin ligne à ligne*/
l++;
printf("\n");
}
} |
Partager