Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/02/2011, 05:29
aadriii
 
Fecha de Ingreso: febrero-2011
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema con cifrado cesar codigo C

Solucionado!! :)

Código:
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define max_tam 1000

void codificacion();
void decodificacion();
int aleatorio();

char s_patron[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789?!*()$#.,";
char s_original[max_tam], s_codificado[max_tam], s_decodificado[max_tam];
int t_original, t_patron, t_codificado, t_codigo, t_decodificado, s_codigo[max_tam];

main()
{  
      int i;
      srand(time((NULL)));
      printf("Introduce un texto a codificar:\n");
      scanf("%[^\n]", s_original);
      t_original=strlen(s_original);
      printf("El codigo es: ");
      codificacion();
      printf("\nLa frase codificada es: %s\n", s_codificado);
      decodificacion();
      printf("La frase decodificada es: %s\n", s_decodificado); 
      system("PAUSE");
}

void codificacion()
{
      int i, j, n;

      for(i=0; i<t_original;i++)
      {
               t_patron=strlen(s_patron);
               for(j=0; j<t_patron; j++)
               {
                        if(s_original[i]==s_patron[j])
                        {
                             n=aleatorio();
                             s_codificado[i]=s_patron[j+n];
                             s_codigo[i]=n; 
                             printf("%d", n);                
                        }
               }                                      
      }
}     

void decodificacion()
{
      int i, j, n;
      t_codificado=strlen(s_codificado);
      for(i=0; i<t_codificado;i++)
      {
               for(j=0; j<t_patron; j++)
               {
                        if(s_codificado[i]==s_patron[j]) s_decodificado[i]=s_patron[j-s_codigo[i]];
               }                                      
      }
} 

int aleatorio()
{
      int aleatorio;
      aleatorio = rand()%9+1;
      return aleatorio;
}