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