#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char texto[200];
int x, y;
/*creamos un vector con todos los caracteres del codigo morse*/
char *caracteres[49]= { "------",".----", "..---", "...--", "....-",".....",
"-....","--...", "---..", "----.", ".-", "-...",
"-.-.", "-..", ".","..-", "--.","....", "..",
".---", "-.-", ".-..", "--", "-.", "---", ".--.",
"--.-", ".-.", "...", "-", "..-", "...-", ".--",
"-..-", "-.--", "--..","----", "--.--",".-.-.-",
"---...", "--..--", "-.-.-.", ".----.", ".-..-.",
"..--..", "-.-.--", "-.--.", "-.--.-", " " };
char *ASCIItoMorse(char *entrada)
/*asignamos la posicion del codigo morse a los respectivos caracteres ASCII*/
{
entrada=texto;
if(entrada[x] >= '0' && entrada[x] <= '9')
return caracteres[entrada[x] - '0'];
else if(entrada[x] >= 'A' && entrada[x] <= 'Z')
return caracteres[entrada[x] - 'A'];
else if(entrada[x]== 'ñ')
return caracteres[38];
else if(entrada[x] >= 'a' && entrada[x] <= 'z')
return caracteres[entrada[x] - 'a'];
else if(entrada[x] =='.')
return caracteres[38];
else if(entrada[x] ==':')
return caracteres[39];
else if(entrada[x] ==',')
return caracteres[40];
else if(entrada[x] ==';')
return caracteres[41];
else if(entrada[x] =='´')
return caracteres[42];
else if(entrada[x] =='"')
return caracteres[43];
else if(entrada[x] =='?')
return caracteres[44];
else if(entrada[x] =='!')
return caracteres[45];
else if(entrada[x] =='(')
return caracteres[46];
else if(entrada[x] ==')')
return caracteres[47];
else if(entrada[x] =='')
return caracteres[48];
}
int main(void)
{
char *entrada;
printf("Ingrese texto ASCII que desea traducir a morse:\n\n");
entrada= gets(texto);
y= strlen(texto);
for(x=0;x<=y-1;x++)
printf("\n%s", ASCIItoMorse(entrada[x]));
system("pause");
}