Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/02/2011, 09:48
Trovaz
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 14 años, 1 mes
Puntos: 9
Respuesta: Problema con cifrado cesar codigo C

Cesar es un cifrado de basado en un corrimiento a la derecha en tres lugares, por lo que:
a -> d
b -> e
c -> f
d -> g

y asi sucesivamente :P

Código c:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <strings.h>
  4. #include <string.h>
  5.  
  6. int main(void){
  7.   int i;
  8.   char cadena[50];
  9.   bzero((char *)&cadena, sizeof(cadena));
  10.   printf("Digite la cadena que desea cifrar: ");
  11.   scanf("%[^\n]", cadena);
  12.   printf("cadena digitada: %s\n", cadena);
  13.   while(getchar() != '\n');
  14.   for(i = 0; i < strlen(cadena); i++){
  15.     //printf("cadena[%i]: %i\n", i, cadena[i]);
  16.     if(cadena[i] == 32) continue;
  17.     if(cadena[i] >= 65 && cadena[i] <= 90){ //Si es mayuscula
  18.       cadena[i] = ((cadena[i] - 65 + 3)%26) + 65;
  19.     }
  20.     else{
  21.       if(cadena[i] >= 97 && cadena[i] <= 122){ //Si es minuscula
  22.         cadena[i] = ((cadena[i] - 97 + 3)%26) + 97;
  23.       }
  24.       else{
  25.         printf("Caracter %c no válido\n", cadena[i]);
  26.         return -1;
  27.       }
  28.     }
  29.   }
  30.   printf("Texto cifrado: %s\n", cadena);
  31.   return 0;
  32. }