Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <locale.h>
- #include <string.h>
- void MENU2(void);
- void le_codigo(int);
- void traduz_para_morse(char*);
- char* traduz_para_latino(char*);
- void imprime_traducao(char*);
- int main(){
- setlocale(LC_ALL, "Portuguese");
- int escolha;
- printf("\n\nPROGRAMA TRADUTOR: Código Morse <---> Alfabeto Latino\n\n");
- printf("MENU:\n\nDigite 1 para traduzir a mensagem do CÓDIGO MORSE para o ALFABETO LATINO.\n\n");
- printf("Digite 2 para traduzir a mensagem do ALFABETO LATINO para o CÓDIGO MORSE.\n\n");
- printf("Digite 0 para SAIR do programa.\n\n");
- scanf("%d",&escolha);
- if(escolha==1)
- le_codigo(escolha);
- else if(escolha==2)
- le_codigo(escolha);
- else if(escolha==0)
- return 0;
- MENU2();
- return 0;
- }
- void MENU2(void){
- int opcao,opcao2;
- printf("\nDeseja realizar mais uma tradução?\n\n 1 - SIM\t\t 2 - NÃO\n\n");
- scanf("%d",&opcao);
- if(opcao==1){
- printf("MENU:\n\nDigite 1 para traduzir a mensagem do CÓDIGO MORSE para o ALFABETO LATINO.\n\n");
- printf("Digite 2 para traduzir a mensagem do ALFABETO LATINO para o CÓDIGO MORSE.\n\n");
- scanf("%d",&opcao2);
- if(opcao2==1)
- le_codigo(opcao2);
- else if(opcao2==2)
- le_codigo(opcao2);
- }
- else if(opcao==2){
- return ;
- }
- return;
- }
- void le_codigo(int ESCOLHA){
- char string_morse[1000],string_latino[1000];
- if(ESCOLHA==1){
- printf("\nDigite o Código Morse:\n\n");
- fflush(stdin);
- gets(string_morse);
- imprime_traducao(traduz_para_latino(string_morse));
- }
- else if(ESCOLHA==2){
- printf("\nDigite o Código em Alfabeto Latino:\n\n");
- fflush(stdin);
- gets(string_latino);
- traduz_para_morse(string_latino);
- }
- return;
- }
- void traduz_para_morse(char *strg_latino){
- while(*strg_latino!='\0'){
- switch(*strg_latino){
- case 'A':
- printf(".- ");
- break;
- case 'B':
- printf("-... ");
- break;
- case 'C':
- printf("-.-. ");
- break;
- case 'D':
- printf("-.. ");
- break;
- case 'E':
- printf(". ");
- break;
- case 'F':
- printf("..-. ");
- break;
- case 'G':
- printf("--. ");
- break;
- case 'H':
- printf(".... ");
- break;
- case 'I':
- printf(".. ");
- break;
- case 'J':
- printf(".--- ");
- break;
- case 'K':
- printf("-.- ");
- break;
- case 'L':
- printf(".-.. ");
- break;
- case 'M':
- printf("-- ");
- break;
- case 'N':
- printf("-. ");
- break;
- case 'O':
- printf("--- ");
- break;
- case 'P':
- printf(".--. ");
- break;
- case 'Q':
- printf("--.- ");
- break;
- case 'R':
- printf(".-. ");
- break;
- case 'S':
- printf("... ");
- break;
- case 'T':
- printf("- ");
- break;
- case 'U':
- printf("..- ");
- break;
- case 'V':
- printf("...- ");
- break;
- case 'W':
- printf(".-- ");
- break;
- case 'X':
- printf("-..- ");
- break;
- case 'Y':
- printf("-.-- ");
- break;
- case 'Z':
- printf("--.. ");
- break;
- case '1':
- printf("·---- ");
- break;
- case '2':
- printf("··--- ");
- break;
- case '3':
- printf("···-- ");
- break;
- case '4':
- printf("····- ");
- break;
- case '5':
- printf("····· ");
- break;
- case '6':
- printf("-···· ");
- break;
- case '7':
- printf("--··· ");
- break;
- case '8':
- printf("---·· ");
- break;
- case '9':
- printf("----· ");
- break;
- case '0':
- printf("----- ");
- break;
- case '.':
- printf("·-·-·- ");
- break;
- case ',':
- printf("--··-- ");
- break;
- case '?':
- printf("··--·· ");
- break;
- case '\'':
- printf("·----· ");
- break;
- case '!':
- printf("-·-·-- ");
- break;
- case '/':
- printf("-··-· ");
- break;
- case '&':
- printf("-·--·- ");
- break;
- case ':':
- printf("·-··· ");
- break;
- case ';':
- printf("---··· ");
- break;
- case '=':
- printf("-·-·-· ");
- break;
- case '-':
- printf("-···- ");
- break;
- case '_':
- printf("-····- ");
- break;
- case '"':
- printf("··--·- ");
- break;
- case '$':
- printf("·-··-· ");
- break;
- case '@':
- printf("···-··- ");
- break;
- case 'Ã':
- printf("·--·-· ");
- break;
- case 'Á':
- printf("·-·- ");
- break;
- case 'À':
- printf("---- ");
- break;
- case 'É':
- printf("··-·· ");
- break;
- case 'Í':
- printf("--·-· ");
- break;
- case 'Õ':
- printf("··--· ");
- break;
- case 'Ó':
- printf("·-··- ");
- break;
- case 'Ú':
- printf("-·--· ");
- break;
- case 'Ç':
- printf("-·-·· ");
- break;
- case ' ':
- printf(" ");
- break;
- }
- strg_latino++;
- }
- return;
- }
- char* traduz_para_latino(char *strg_morse){
- char* aux;
- char resultado[1000] = "";
- aux = strtok(strg_morse, " "); // Separa strg_morse procurando os espaços ' '
- while (aux != NULL) { // Enquanto ele conseguir separar
- if(strcmp(aux,".-")==0)
- strcat(resultado,"A");
- else if(strcmp(aux,"-...")==0)
- strcat(resultado,"B");
- else if(strcmp(aux,"-.-.")==0)
- strcat(resultado,"C");
- else if(strcmp(aux,"-..")==0)
- strcat(resultado,"D");
- else if(strcmp(aux,".")==0)
- strcat(resultado,"E");
- else if(strcmp(aux,"..-.")==0)
- strcat(resultado,"F");
- else if(strcmp(aux,"--.")==0)
- strcat(resultado,"G");
- else if(strcmp(aux,"....")==0)
- strcat(resultado,"H");
- else if(strcmp(aux,"..")==0)
- strcat(resultado,"I");
- else if(strcmp(aux,".---")==0)
- strcat(resultado,"J");
- else if(strcmp(aux,"-.-")==0)
- strcat(resultado,"K");
- else if(strcmp(aux,".-..")==0)
- strcat(resultado,"L");
- else if(strcmp(aux,"--")==0)
- strcat(resultado,"M");
- else if(strcmp(aux,"-.")==0)
- strcat(resultado,"N");
- else if(strcmp(aux,"---")==0)
- strcat(resultado,"O");
- else if(strcmp(aux,".--.")==0)
- strcat(resultado,"P");
- else if(strcmp(aux,"--.-")==0)
- strcat(resultado,"Q");
- else if(strcmp(aux,".-.")==0)
- strcat(resultado,"R");
- else if(strcmp(aux,"...")==0)
- strcat(resultado,"S");
- else if(strcmp(aux,"-")==0)
- strcat(resultado,"T");
- else if(strcmp(aux,"..-")==0)
- strcat(resultado,"U");
- else if(strcmp(aux,"...-")==0)
- strcat(resultado,"V");
- else if(strcmp(aux,".--")==0)
- strcat(resultado,"W");
- else if(strcmp(aux,"-..-")==0)
- strcat(resultado,"X");
- else if(strcmp(aux,"-.--")==0)
- strcat(resultado,"Y");
- else if(strcmp(aux,"--..")==0)
- strcat(resultado,"Z");
- else if(strcmp(aux,"·----")==0)
- strcat(resultado,"1");
- else if(strcmp(aux,"··---")==0)
- strcat(resultado,"2");
- else if(strcmp(aux,"···--")==0)
- strcat(resultado,"3");
- else if(strcmp(aux,"····-")==0)
- strcat(resultado,"4");
- else if(strcmp(aux,"·····")==0)
- strcat(resultado,"5");
- else if(strcmp(aux,"-····")==0)
- strcat(resultado,"6");
- else if(strcmp(aux,"--···")==0)
- strcat(resultado,"7");
- else if(strcmp(aux,"---··")==0)
- strcat(resultado,"8");
- else if(strcmp(aux,"----·")==0)
- strcat(resultado,"9");
- else if(strcmp(aux,"-----")==0)
- strcat(resultado,"0");
- else if(strcmp(aux,"·-·-·-")==0)
- strcat(resultado,".");
- else if(strcmp(aux,"--··--")==0)
- strcat(resultado,",");
- else if(strcmp(aux,"··--··")==0)
- strcat(resultado,"?");
- else if(strcmp(aux,"·----·")==0)
- strcat(resultado,"\'");
- else if(strcmp(aux,"-·-·--")==0)
- strcat(resultado,"!");
- else if(strcmp(aux,"-··-·")==0)
- strcat(resultado,"/");
- else if(strcmp(aux,"-·--·")==0)
- strcat(resultado,"(");
- else if(strcmp(aux,"-·--·-")==0)
- strcat(resultado,")");
- else if(strcmp(aux,"·-···")==0)
- strcat(resultado,"&");
- else if(strcmp(aux,"---···")==0)
- strcat(resultado,":");
- else if(strcmp(aux,"-·-·-·")==0)
- strcat(resultado,";");
- else if(strcmp(aux,"-···-")==0)
- strcat(resultado,"=");
- else if(strcmp(aux,"-····-")==0)
- strcat(resultado,"-");
- else if(strcmp(aux,"··--·-")==0)
- strcat(resultado,"_");
- else if(strcmp(aux,"·-··-·")==0)
- strcat(resultado,"\"");
- else if(strcmp(aux,"···-··-")==0)
- strcat(resultado,"$");
- else if(strcmp(aux,"·--·-·")==0)
- strcat(resultado,"@");
- else if(strcmp(aux,"·-·-")==0)
- strcat(resultado,"Ã");
- else if(strcmp(aux,"----")==0)
- strcat(resultado,"Á");
- else if(strcmp(aux,"·--·-")==0)
- strcat(resultado,"À");
- else if(strcmp(aux,"··-··")==0)
- strcat(resultado,"É");
- else if(strcmp(aux,"--·-·")==0)
- strcat(resultado,"Í");
- else if(strcmp(aux,"··--·")==0)
- strcat(resultado,"Õ");
- else if(strcmp(aux,"·-··-")==0)
- strcat(resultado,"Ó");
- else if(strcmp(aux,"-·--·")==0)
- strcat(resultado,"Ú");
- else if(strcmp(aux,"-·-··")==0)
- strcat(resultado,"Ç");
- aux = strtok(NULL, " ");
- }
- return resultado;
- }
- void imprime_traducao(char *strg_traduzida){
- printf("%s",strg_traduzida);
- return ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement