From e54277f67641759e4ab28b11d14c4d1db14ca9ae Mon Sep 17 00:00:00 2001 From: Nikolic <stefan.nikolic@hes-so.ch> Date: Thu, 23 Jan 2025 14:13:59 +0100 Subject: [PATCH] Regle le probleme pour trouver le code Morse d'un chiffre --- 24-25/TP14/arbinaire_morse.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/24-25/TP14/arbinaire_morse.c b/24-25/TP14/arbinaire_morse.c index 6705d7c..f045359 100644 --- a/24-25/TP14/arbinaire_morse.c +++ b/24-25/TP14/arbinaire_morse.c @@ -85,11 +85,20 @@ char recherche(char * morse, tree tree){ } -char * recherche_morse(char letter){ - char ** table = loadTableMorse("code-morse.txt"); - char * morse = malloc(6 * sizeof(*morse)); - morse = strcpy(morse, table[letter - 65]); // Copie dans la table morse la répresentation Morse de la lettre - destroyTable(36, table); // 36 = nombres totale de lettres +char * recherche_morse(char letter) { + char **table = loadTableMorse("code-morse.txt"); + // on alloue un char de 6 car le code morse peut être d'une longeur maximum de 5 chars + le charactère de fin + char *morse = malloc(6 * sizeof(*morse)); + + // on vérifie si c'est une lettre + if ((letter >= 'A' && letter <= 'Z')) { + morse = strcpy(morse, table[letter - 'A']); + // on vérifie si c'est un chiffre + } else if (letter >= '0' && letter <= '9') { + morse = strcpy(morse, table[26 + (letter - '0')]); + } + + destroyTable(36, table); // 36 = 26 lettres + 10 chiffres return morse; } -- GitLab