-
Notifications
You must be signed in to change notification settings - Fork 367
Expand file tree
/
Copy pathMorseCodeConvortor.c
More file actions
57 lines (47 loc) · 1.8 KB
/
MorseCodeConvortor.c
File metadata and controls
57 lines (47 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_LENGTH 1000
typedef struct {
char character;
char* code;
} MorseCodeEntry;
MorseCodeEntry morseCodeMap[] = {
{'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', "--.."},
{'0', "-----"}, {'1', ".----"}, {'2', "..---"}, {'3', "...--"}, {'4', "....-"},
{'5', "....."}, {'6', "-...."}, {'7', "--..."}, {'8', "---.."}, {'9', "----."},
{' ', "/"}
};
char* convertToMorseCode(const char* text) {
int textLength = strlen(text);
char* morseCode = (char*)malloc((4 * textLength + 1) * sizeof(char));
int morseCodeIndex = 0;
for (int i = 0; i < textLength; i++) {
char upperChar = toupper(text[i]);
for (int j = 0; j < sizeof(morseCodeMap) / sizeof(MorseCodeEntry); j++) {
if (morseCodeMap[j].character == upperChar) {
strcpy(&morseCode[morseCodeIndex], morseCodeMap[j].code);
morseCodeIndex += strlen(morseCodeMap[j].code);
morseCode[morseCodeIndex++] = ' '; // Add space between characters
break;
}
}
}
morseCode[morseCodeIndex] = '\0';
return morseCode;
}
int main() {
char text[MAX_LENGTH];
printf("Enter a text string: ");
fgets(text, sizeof(text), stdin);
text[strcspn(text, "\n")] = '\0';
char* morseCode = convertToMorseCode(text);
printf("Text: %s\n", text);
printf("Morse Code: %s\n", morseCode);
free(morseCode);
return 0;
}