C#Sharp
•
• Membros Juniores
• 5 posts
• Membro desde 18/05/2011
0
Neutra
• Brasília
Postado 23 de maio de 2011 - 16h32min
Olá, tenho que fazer um programa para a faculdade em linguagem C. Eu tenho que fazer um programa em C que recebe o nome completo de uma pessoa, criptografe e depois descriptografe.
O processo de criptografia é o seguinte:
1. O programa recebe um nome;
2. Atribuir a criptografia de Cezar, andando 3 posições com cada letra (No caso, letra “a” será letra ”d” e assim vai...);
3. Logo após, mostrar a posição de cada letra na tabela asc (No caso, a letra “a” seria 100, a letra “b” seria o 101 e assim vai...);
Bom, ate ai tudo bem, eu consegui fazer. O meu problema é que eu não tenho ideia de como fazer para descriptografar. A minha ideia inicial para fazê-lo é simples, só fazer o inverso. Mas o resultado final seriam números (exemplo: quando digito “abcd” o programa retorna 100 101 102 103). Como faço para isolar cada número? Letra é simples, porque não existe uma letra com mais de um caráter. Já com os números, eles podem ser tanto o nº 1 ou o nº 11 ou o nº 100, com um ou mais caracteres.
Alguém tem alguma ideia de como posso fazer? Estou quase ficando desesperado ‘’/
Segue abaixo o código do meu projeto final até a parte de criptografia.
//programa de criptografia
#include
#include
#include
#include
#define tam 25
typedef struct{ char palavra[tam];
}dados;
void criptografa(dados cripto);
int main (){ dados nome; criptografa(nome); system("pause"); return 0; }
void criptografa(dados cripto){ printf("Informe o nome do aluno: "); gets(cripto.palavra);
for(int i = 0 ; i < strlen(cripto.palavra) ; i++){ if(cripto.palavra[i] == 'c'){ cripto.palavra[i] = 'f'; } else if(cripto.palavra[i] == 'b'){ cripto.palavra[i] = 'e';