Untitled
unknown
plain_text
2 years ago
1.2 kB
10
Indexable
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char morseToChar(const char* morse) {
static const char* morseCodes[] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..",
"--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-",
"-.--", "--.."
};
static const char* alphabet = "abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i < 26; ++i) {
if (strcmp(morse, morseCodes[i]) == 0) {
return alphabet[i];
}
}
return ' ';
}
void decodeMorseCode(const char* morseCode) {
int morseLen = strlen(morseCode);
char decoded[morseLen];
int decodedIndex = 0;
char* token = strtok((char*)morseCode, " ");
while (token != NULL) {
char letter = morseToChar(token);
decoded[decodedIndex++] = letter;
token = strtok(NULL, " ");
}
decoded[decodedIndex] = '\0';
printf("%s\n", decoded);
}
int main() {
char morseCode[1000];
fgets(morseCode, sizeof(morseCode), stdin);
morseCode[strcspn(morseCode, "\n")] = '\0';
decodeMorseCode(morseCode);
return 0;
}
Editor is loading...