rendered paste body#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX 1024
void tm(void),menu(void);
int main(void)
{
while(1)
{
menu();
}
return 0;
}
void menu(void)
{
int num;
char s[20];
printf("1 - Converter texto para morse;\n");
printf("2 - Converter morse para texto;\n");
printf("3 - Converter texto para binario;\n");
printf("4 - Converter binario para texto.\n");
while (1) {
printf("Opcao: ");
fgets(s, 20, stdin);
if ( sscanf(s, "%d", &num) != 1 )
continue;
switch(num)
{
case 1:
tm();
break;
case 2:
printf("Funcao nao implementada\n");
continue;
case 3:
printf("Funcao nao implementada\n");
continue;
case 4:
printf("Funcao nao implementada\n");
continue;
default:
printf("Opcao invalida\n");
continue;
}
}
}
void tm(void)
{
char *alfabeto = "abcdefghijklmnopqrstuvwxyz ";
char morse[][5] = { ".-", "-...", "-.-.", "-..",
".", "..-.","--.","....", "..",
".---","-.-",".-..","--",
"-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--",
"-..-","-.--","--.."," " };
char str[MAX], str2[MAX], *p;
int i, j;
str2[0] = '\0'; /* so pra garantir o funcionamento de strcat() */
printf("Entre com uma string: ");
if ( fgets(str, MAX, stdin) == NULL ) {
fprintf(stderr, "Voce ultrapassou o limite de caracteres permitidos nessa string\n");
fprintf(stderr, "Saindo do programa.\n");
menu();
}
/* remover o newline que o fgets coloca na string */
if ( p = strchr(str, '\n') )
*p = 0;
for (i = 0 ; str[i] ; i++)
if ( strchr(alfabeto, tolower(str[i])) != NULL) {
strcat(str2, morse[tolower(str[i])-'a']);
strcat(str2, " ");
}
str2[strlen(str2)-1] = '\0';
printf("[%s] => [%s]\n\n", str, str2);
}