Bom, sou meio novo em c, intão me desculpem a ignorância. É o seguinte, tenho que fazer um programa que faça criptografia de uma frase e depois mostro ela criptografada, e depois pegunto se quer descriptografar e depois a mostro também. Até ai tudo bem.
No caso eu peguei a frase, tranformei ela em caracteres da tabela ascii, conforme seus numero alt + ... e depois somei esses numero por 5, só para complicar mais um pouquinho.
o problema é o seguinte, tenho que declarar caracteres maiúsculos e minusculo, números e tambem pontuações, pois a frase pode conter todos esse tipos de caracteres.
LEMBRANDO, AINDA NÃO FIZ A PARTE DA DESCRIPTOGRAFIA, é simples, porém quero fazer dar certo a criptografia primeiro, depois só subtraio por 5 em uma funçao na escolah sim dentro do switch.
SEGUE O CODIGO:
#include <stdio.h>
#include <strings.h>
char* criptografa(char* frase)
{
int i, j;
//caracteres: Alfabeto minusculo, Alfabeto maiúsculo, pontuações, e numeros.
char letras[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x','y', 'z',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'.', ' ',',', ':', ';', '?','!', '@', '#', '$','-', '(', ')', '{', '}', '_',
'1','2','3','4','5','6','7','8','9'};
//numeros que representam simbolos na Tabela Ascii (101 simbolos colocados).
int numeros[] = { 1, 2, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
247, 248, 249, 250};
char* fraseCrypto;
printf("%i", strlen(frase));
// Passando por cada letra da palavra informada
for(i = 0; i < strlen(frase); i++)
{
// Passa por cada letra para descobrir em qual posição está
for(j = 0; j < strlen(letras); j++)
{
if (frase == letras[j])
{
fraseCrypto = numeros[j] + 5;
}
}
}
return fraseCrypto;
}
int main ()
{
int i, j, sim=1, nao=2, escolha, frasedescripto, fraseCrypto;
char frase[150], disc[150];
char* fraseCryptografada;
printf("Digite a frase desejada: ");
gets(frase);
fraseCryptografada = criptografa(frase);
for(i = strlen(frase); i < strlen(fraseCryptografada); i++)
{
fraseCryptografada = ' ';
}
// mostrando frase criptografada
printf("Frase Criptografada: %s", fraseCryptografada);
printf("\nDeseja descriptografar? ");
scanf ("%i",&escolha);
switch (escolha)
{
//sim
case 1:
printf ("Você escolheu descriptografar");
//vou chamar função aqui para descriptografar, ainda tenho que criala
break;
//não
case 2:
printf ("Você escolheu por não descriptografar ");
break;
}
}