Você está na página 1de 4

#include <stdio.

h>
#include <stdlib.h>
char decoder(char *frasecodec)
{
char frase_decodec[1000];
if((frasecodec[0] == ' ') && (frasecodec[1] == ' '))
return;
int i,j;
j=0;
for(i=0;i<1000;i++){
if((frasecodec[0] != 'p') && (frasecodec[0] != 'P'))
{
// Se a posicao 0 nao for p, a codificacaoe sta incorreta
printf("\nMensagem deve iniciar com a letra P! Redigite");
system("pause");
return;}
if((frasecodec[i] == ' ') && (frasecodec[i + 1] == ' ')){
// Se houver dois estaos seguidos a mensagem esta incorreta
printf("\nMensagem nao pode conter dois espacos seguidos! Redigite")
;
system("pause");
return;}
/* if(frasecodec[i] < 'A' && > 'Z'){ //&& (frasecodec[i] > 'z')){
// || (frasecodec[i] > 'A') && (frasecodec[i] < 'Z') || (frasecodec[i
] != ' '))
printf("\nDigite apenas letras maisculas e minusclas e espacos em br
ancoI Redigite");
return;}
*/
if((frasecodec[i] == 'p') && (frasecodec[i + 1] == 'p'))
frasecodec[i + 1 ] = '#';
//Se houver um P na mensagem que fizer parte da mesma
// tropo este P por um coringa
if(frasecodec[i] != 'p')
{
if(frasecodec[i] == '#')
frasecodec[i] = 'p';
//Aqui troco o curinga pelo P que faz parte da mensagem
frase_decodec[j] = frasecodec[i];
j++;}
}
system("cls");
printf("\nMensagem codificada..: %s", frasecodec);
printf("\n\nMensagem decodificada: %s", frase_decodec);
printf("\n\n");
system("\pause");
}
char encoder(char *frase_decod){
char frase_codec[1000];
int i,j;
j=0;
for(i=0;frase_decod[i] != '\0';i++){
// Eliminar o caracter \0 que encerra a string entre palavras
// da frase
if(frase_codec[i] == '\0')
frase_codec[i] = ' ';
// Aqui faz com que cada letra da frase receba um p exeto quando h um espao
// na frase
if(frase_decod[i] == ' ')
frase_codec[i+j]=' ';
else
frase_codec[i+j]='p';
j++;
// Monta a frase codificada na lingua do "p".
frase_codec[i + j]=frase_decod[i];
}
// Abaixo inseri final de string para nao mostrar sujeiras
// apos o final da frase completa
frase_codec[i+j]='\0';
// Mostra a frase codificada na lingua do "p".
system("cls");
printf("\nMensagem codificada..: %s", frase_codec);
printf("\n\nMensagem decodificada: %s", frase_decod);
printf("\n\n");
system("\pause");
}
void menu(){
system("cls");
printf("\nMenu - Codificar ou Decodificar a Lingua do 'P'");
printf("\n\n\n 1 - Inserir Mensagem");
printf("\n 2 - Decodificar Mensagem");
printf("\n 3 - Codificar Mensagem");
printf("\n 4 - Exibir Mensagem Codificada");
printf("\n 5 - Exibir Mensagem Decodificada");
printf("\n 6 - Abrir arquivo de Mensagem Decodificada e Codificada no No
tepad");
printf("\n 7 - Encerrrar o aplicativo");
printf("\n\nDigite a Opcao que Deseje:");
}
int main()
{
char mensagem[1000];// = "pVpapmpops ppaprpa po pcpipnpepmpa";
char frase[1000];
char opc;
while(opc != '7')
{
menu();
opc=getchar();
switch(opc){
case '1': // Inserir
printf("Digite sua mensagem:");
fflush(stdin);
gets(mensagem);
break;
case '2':
if(mensagem[0] == '\0'){
break;}
if(mensagem[0] != 'p')
{
printf("\nComo sua mensagem nao esta codificada,\n");
printf("o aplicativo codificara automaticamente \nsua men
sagem!\n");
system("pause");
encoder(mensagem);
break;}
if((mensagem[0] == 'p') &&
(mensagem[1] == 'a') ||
(mensagem[1] == 'e') ||
(mensagem[1] == 'i') ||
(mensagem[1] == 'o') ||
(mensagem[1] == 'u') &&
(mensagem[2] == 'p') &&
(mensagem[3] == 'a') ||
(mensagem[3] == 'e') ||
(mensagem[3] == 'i') ||
(mensagem[3] == 'o') ||
(mensagem[3] == 'u'))
{
printf("\nComo sua mensagem nao esta codificada,\n");
printf("o aplicativo codificara automaticamente \nsua men
sagem!\n");
system("pause");
encoder(mensagem);
break;}
decoder(mensagem);
break;
case '3':
if(mensagem[0] == '\0') {
break;}
if((mensagem[0] == 'p') && (mensagem[2] == 'p') && (mensagem
[4] == 'p') ||
(mensagem[0] == 'p') && (mensagem[1] == 'p'))
{
printf("\nO Aplicativo identificou que a mensagem\n esta
CODIFICADA.\n");
printf("O aplicativo decodificara automaticamente\n sua m
ensagem!\n");
system("pause");
decoder(mensagem);
break;} // pVpApCpA
encoder(mensagem);
break;
default:;
}
}
}

Você também pode gostar