|
| 1 | +#include "Morse.h" |
| 2 | + |
| 3 | +// Morse lookup table (A–Z, 0–9) |
| 4 | +const MorseMap morseTable[] = { |
| 5 | + {".-", 'A'}, {"-...", 'B'}, {"-.-.", 'C'}, {"-..", 'D'}, {".", 'E'}, |
| 6 | + {"..-.", 'F'}, {"--.", 'G'}, {"....", 'H'}, {"..", 'I'}, {".---", 'J'}, |
| 7 | + {"-.-", 'K'}, {".-..", 'L'}, {"--", 'M'}, {"-.", 'N'}, {"---", 'O'}, |
| 8 | + {".--.", 'P'}, {"--.-", 'Q'}, {".-.", 'R'}, {"...", 'S'}, {"-", 'T'}, |
| 9 | + {"..-", 'U'}, {"...-", 'V'}, {".--", 'W'}, {"-..-", 'X'}, {"-.--", 'Y'}, |
| 10 | + {"--..", 'Z'}, |
| 11 | + |
| 12 | + {"-----", '0'}, {".----", '1'}, {"..---", '2'}, {"...--", '3'}, {"....-", '4'}, |
| 13 | + {".....", '5'}, {"-....", '6'}, {"--...", '7'}, {"---..", '8'}, {"----.", '9'} |
| 14 | +}; |
| 15 | + |
| 16 | +// Decode a Morse sequence into a character |
| 17 | +char decodeMorse(const char* code) { |
| 18 | + for (unsigned int i = 0; i < sizeof(morseTable) / sizeof(morseTable[0]); i++) { |
| 19 | + if (strcmp(code, morseTable[i].code) == 0) { |
| 20 | + return morseTable[i].letter; |
| 21 | + } |
| 22 | + } |
| 23 | + return '?'; // Unknown sequence |
| 24 | +} |
0 commit comments