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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char *morse[55] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", ".-.-.-", "--..--", "..--..", ".----.", "-.-.--", "-..-.", "-.--.", "-.--.-", ".-...", "---...", "-.-.-.", "-...-", ".-.-.", "-....-", "..--.-", ".-..-.", "...-..-", ".--.-.", "...---..."};
const char *ascii[55] = {"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", ".", ",", "?", "'", "!", "/", "(", ")", "&", ":", ";", "=", "+", "-", "_", "\"", "$", "@", "SOS"};
void decode_morse(char *morse);
void error_(const char *message);
int count_array(char *tocount);
int main(int argc, char *argv[])
{
decode_morse(".... . -.-- .--- ..- -.. .");
return 1;
}
void decode_morse(char *morse_)
{
int i, y = 0 ;
char *decoded = strdup(morse_);
if(decoded)
{
int count = count_array(decoded);
char *token = strtok(decoded, " ");
char *array[count];
char ret[count];
while(token != NULL)
{
array[i] = token;
i++;
token = strtok(NULL, " ");
}
for(i = 0; i < count; i++)
{
for(y = 0; i < 55; y++)
{
if(array[i] == morse[y])
{
ret[i] = *ascii[y];
}
}
}
}
else
error_("Strdup failed");
}
void error_(const char *message)
{
fprintf(stderr, "%s\r\n", message);
}
int count_array(char *tocount)
{
char *copy = strdup(tocount);
int i = 0;
if(copy)
{
char *token = strtok(copy," ");
while(token != NULL)
{
i++;
token = strtok(NULL, " ");
}
free(copy);
return i;
}
else
error_("Function failed");
} |
Partager