Prog en c : traduction français vers morse [Fermé]

Signaler
-
 matthieu -
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define TAILLE 200



/*fonction traduction french-mors*/


int main(void)
{
char t[37]={'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','1','2','3','4','5','6','7','8','9','0',
' '},
m[37][6]={{".-"},{"-..."},{"-.-."},{"-.."},{"."},{"..-."},{"--."},{"...."},{".."},
{".---"},{"-.-"},{".-.."},{"--"},{"-."},{"---"},{".--."},{"--.-"},{".-."},
{"..."},{"-"},{"..-"},{"...-"},{".--"},{"-..-"},{"-.--"},{"--.."},{".----"},
{"..---"},{"...--"},{"....-"},{"....."},{"-...."},{"--..."},{"---.."},{"---."},
{"-----"},{"//"}};
int i,l,k;
char phrase[TAILLE];
printf("veuillez entrer une phrase\n");
gets(phrase);
for(i=0;i<200;i++)
{
for(k=0;k<37;k++)
{
if(phrase[i]=t[k])
{
printf("%c",m[k][6]);
i++;
}
else { printf("erreur");}

}

}


voici le prog que g realiser mais g un pb ds ma boucle , pourriez vous me filer un coup de pouce ?
merci d'avance !;-)

4 réponses

Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
206
L'opérateur d'identité du C est "==" !!!
Quand on lui substitue l'opérateur d'affectation "=", on obtient une expression "vraie" avec les conséquences qui peuvent en résulter. Sans erreur de syntaxe.

Que ceux qui n'ont jamais commis cette erreur lèvent le doigt !!!
De plus le i++ est inutile et dangereux. Il faut l'enlever, ou le remplacer par continue. L'utilisation de gets est fortement déconseillée (pas de contrôle de la longueur de la chaîne entrée), il faudrait la remplacer par fgets(phrase, TAILLE, stdin). Il me semble que le include <conio.h> est superflu (spécifique à un compilateur peut-être ?).

Une fois tout cela effectué, tu auras du code qui marche, mais pas pour autant du code sûr. Il faut toujours contrôler les cas d'erreurs, en particulier lorsque tu travailles avec des entrées de l'utilisateur. Il ne faut pas fuir ces parties là en disant "Ca y'est ça marche à peu près quand l'utilisateur ne se trompe pas, je passe à ce qui m'intéresse." Il est courant, dans ce genre de programme, d'avoir plus de code pour gérer les erreurs que de code réellement utile.
Messages postés
392
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
87
En même temps, après presque 3 ans, je pense qu'il est passé à autre chose ...
s'il vous plait pouvez vous essaye de traduire ca c'est une enigme de depart d'un rallye et c'est tres tres dure celui qui y'arrive bravo merci d'avance et bon courrage -.-.-.-..-.-.-...-.-.-.---........--...--...-.---..--.-......-.-..-..-.....-.-.-