Ruanes
Power Member
oi
estou a ter uns problems com um programa.
A parte do programa em que estou a ter problemas é na parte em que o usuario escreve uma frase e depois o programa vai ler a frase caracter a caracter e comparar cada um deles com cada caracter de um vector e se for igual troca esse caracter por outro que está noutra tabela.
Isto funciona muito bem quando é a cifrar mas a decifrar já é outra historia.(não aparece nada).
aqui está o codigo:
[/LEFT]
estou a ter uns problems com um programa.
A parte do programa em que estou a ter problemas é na parte em que o usuario escreve uma frase e depois o programa vai ler a frase caracter a caracter e comparar cada um deles com cada caracter de um vector e se for igual troca esse caracter por outro que está noutra tabela.
Isto funciona muito bem quando é a cifrar mas a decifrar já é outra historia.(não aparece nada).
aqui está o codigo:
Código:
#include
[LEFT]<stdio.h>
[LEFT]#include[/LEFT]
<my_biblio.h>
[LEFT]#include[/LEFT]
<stdlib.h>
[LEFT]#define[/LEFT]
SINAL '-'
[LEFT]int[/LEFT]
main (int argc ,char *argv[])
[LEFT]{
char code[256];//guarda o codigo
char ncode[256];//guarda a lista
int i,j;//contador
char ch;//Caractere que vai guardar a opção
char txt[500];//Guarda o texto a ser cifrado/decifrado
//Preenchimento da lista
for (i=0;i<256;i++)
ncode[i]=(char)i;
//Preenchimento do codigo
for (i=255,j=0;i>=0;i--,j++)
code[j]=(char)i;
ncode[0]=code[0]=0;
//Teste aos parametros
switch(argc)
{
//Caso apenas exista um parametro
case 1:
//Pergunta ao usuario se pretende cifrar ou decifrar texto
puts([/LEFT]
"Cifrar(c) ou Decifrar(d)");
[LEFT]//Guarda a opção do usuario
ch=getchar();
//Se a opção nao for c nem d entao...
if (chicmp(ch,'c')==0 && chicmp(ch,'d')==0)
{
printf("Opcao errada\n\n");
system("pause");
exit (1);
}
system("cls");
if (chicmp(ch,'c')!=0)
printf("Cifrar\n\n");
else
printf([/LEFT]
"Decifrar\n\n");
[LEFT]puts ("Escreve a frase que queres ");
if (chicmp(ch,'c')!=0)
printf("cifrar\n");
else
printf([/LEFT]
"decifrar\n");
[LEFT]gets(txt);[/LEFT]
[LEFT]puts("\n\n");
if (chicmp(ch,'c')!=0)
for (i=0;txt[i]!='\0';i++)
for (j=0;j<=255;j++)
if (txt[i]==ncode[j])
putchar(code[j]);
elseif (chicmp(ch,'d')!=0)
for (i=0;txt[i]!='\0';i++)
for (j=0;j<=255;j++)
if (txt[i]==code[j])
putchar(ncode[j]);
puts("\n\n\n\nCompleto\n\n");
break;
case 2:
if (argv[1][0]!=SINAL)
{
puts("Sinal invalido");
exit(1);
}
if (chicmp(argv[1][1],'c')==0 && chicmp(argv[1][1],'d')==0)
{
printf("Opcao errada\n\n");
system("pause");
exit (1);
}
system("cls");
if (chicmp(argv[1][1],'c')!=0)
printf("Cifrar\n\n");
else
printf([/LEFT]
"Decifrar\n\n");
[LEFT]puts ("Escreve a frase que queres ");
if (chicmp(argv[1][1],'c')!=0)
printf("cifrar\n");
else
printf([/LEFT]
"decifrar\n");
[LEFT]gets(txt);[/LEFT]
[LEFT]puts("\n\n");
if (chicmp(argv[1][1],'c')!=0)
for (i=0;txt[i]!='\0';i++)
for (j=0;j<=255;j++)
if (txt[i]==ncode[j])
putchar(code[j]);
else
for (i=0;txt[i]!='\0';i++)
for (j=0;j<=255;j++)
if (txt[i]==code[j])
putchar(ncode[j]);
puts("\n\n\n\nCompleto\n\n");
break;
default:
puts("ERRO");
exit(2);
}
system("pause"); [/LEFT]
}
Última edição pelo moderador: