elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cifrado de cesar en [C] [?]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cifrado de cesar en [C] [?]  (Leído 5,247 veces)
katy09811

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Cifrado de cesar en [C] [?]
« en: 19 Julio 2015, 01:27 am »

disculpen tengo un problema en c ya que que tengo q hacer que un programa m de el cifrado de cesar tengo esto pero no m sale la frac cifrada alguien que m ayude por fa,gracias
Código
  1. #include<stdio.h>
  2. #define LONG_MAX 30
  3. void mayuscula(char *fraseOriginal_prt);
  4. int cifrar(char *fraseOriginal_ptr,char *fraseConvertida_ptr,int clave);
  5. int main(){
  6.    char fraseOriginal[LONG_MAX];
  7.    char fraseConvertida[LONG_MAX];
  8.    int clave,opcion;
  9.    printf("Cifrado de cesar");
  10.    printf("\nCadena original:");
  11.    fgets(fraseOriginal,LONG_MAX,stdin);
  12.    mayuscula(fraseOriginal);//En este caso la misma cadena de entrada guardara los valores convertidos a mayuscula.
  13.    printf("Ingrese clave:");
  14.    scanf("%d", &clave);
  15.    printf("Digite 1 para cifrar o 2 para descifrar:");
  16.    scanf("%d",&opcion);
  17.    printf("\nCadena mayuscula:%s",fraseOriginal);
  18.    if(opcion == 1){
  19.        cifrar(fraseOriginal,fraseConvertida,clave);
  20.        printf("Cadena cifrada:%s",fraseConvertida);
  21.  //  }else if(opcion == 2){
  22.  //      descifrar(fraseOriginal,fraseConvertida,clave);
  23.  //      printf("Cadena descifrada:%s",fraseConvertida);
  24.    }else{
  25.        printf("OPCION NO RECONOCIDA");
  26.    }
  27.    return 0;
  28. }
  29.  
  30. void mayuscula(char *fraseOriginal_ptr){
  31. while(*fraseOriginal_ptr){
  32.    if(*fraseOriginal_ptr>='a' && *fraseOriginal_ptr<='z'){
  33.        *fraseOriginal_ptr = *fraseOriginal_ptr-32;
  34.    }
  35.    fraseOriginal_ptr++;
  36. }
  37. return ;
  38. }
  39.  
  40. int cifrar(char *fraseOriginal_ptr,char *fraseConvertida_ptr,int clave){
  41. while(*fraseOriginal_ptr){
  42.    if(*fraseOriginal_ptr>='a' && *fraseOriginal_ptr<='z'){
  43.        *fraseOriginal_ptr = *fraseConvertida_ptr+clave;
  44.    }
  45.    fraseOriginal_ptr++;
  46. }
  47. while(*fraseConvertida_ptr){
  48.    if(*fraseConvertida_ptr>='a' && *fraseConvertida_ptr<='z'){
  49.        *fraseConvertida_ptr = *fraseConvertida_ptr-32;
  50.    }
  51.    fraseConvertida_ptr++;
  52. }
  53. return fraseConvertida_ptr;
  54.  
  55. }

Mos: los códigos debeniren etiquetas GeSHi


« Última modificación: 19 Julio 2015, 21:47 pm por engel lex » En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Cifrado de cesar en [C] [?]
« Respuesta #1 en: 19 Julio 2015, 21:43 pm »

Mira este codigo a ver si te sirve

Código
  1. void cifrar(char cadena[],int clave,int size){
  2.  int i;
  3.  for(i=0;i<size;i++){
  4. cadena[i]=(char)((int)cadena[i]+clave);
  5.  }
  6. }
  7.  
  8. void descifrar(char cadena[],int clave,int size){
  9.  int i;
  10.  for(i=0;i<size;i++){
  11. cadena[i]=(char)((int)cadena[i]-clave);
  12.  }
  13. }
  14.  
  15.  
  16.  
  17.  
  18. int main()
  19. {
  20. char cadena[]="hola mundo";
  21. int size=strlen(cadena);
  22. cifrar(cadena,13,size);
  23. printf("cadena cifrada: %s",cadena);
  24. descifrar(cadena,13,size);
  25. printf("\ncadena descifrada: %s",cadena);
  26.  
  27. getch();
  28. return 0;
  29. }


En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Cifrado de cesar en [C] [?]
« Respuesta #2 en: 19 Julio 2015, 21:49 pm »

La función cifrar retorna un valor, sin embargo en la linea 19 no se lo asignas a nadie

crack81 tu codigo veo que tiene un error, si colocas letras minúsculas, te colocará caracteres problematicos o no imprimibles
« Última modificación: 19 Julio 2015, 21:57 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cifrado de cesar en [C] [?]
« Respuesta #3 en: 19 Julio 2015, 22:09 pm »

Recordad que si la letra + la clave acaba mayor que 'z' o de 'Z', hay que restarle.

Código
  1. void cesar(char* str, int key){
  2.    for(; *str; str++)
  3.        if(*str>='a' && *str<='z')
  4.            *str = (*str+key-'a')%('z'-'a'+1)+'a';
  5.        else if(*str>='A' && *str<='Z'){
  6.            *str = (*str+key-'A')%('Z'-'A'+1)+'A';
  7.        }
  8. }
  9.  
  10. void decryptCesar(char* str, int key){
  11.    cesar(str, 'z'-'a'-key+1);
  12. }
« Última modificación: 19 Julio 2015, 22:11 pm por ivancea96 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cifrado César en Python
Scripting
.:WindHack:. 3 7,441 Último mensaje 7 Junio 2010, 02:10 am
por Novlucker
Qué preferis: Cifrado cesar o Ensalada cesar?
Foro Libre
Castg! 6 4,512 Último mensaje 1 Agosto 2011, 22:45 pm
por scr21
[+] mCesar - Cifrado Cesar
Programación Visual Basic
|SMT| 1 2,128 Último mensaje 8 Septiembre 2013, 16:09 pm
por noele1995
cifrado cesar en c
Programación C/C++
kikian94 6 10,511 Último mensaje 29 Octubre 2013, 15:01 pm
por kikian94
trabajo de codificacion segun cifrado cesar y juego de ahorca
Programación C/C++
RobVanper 4 1,760 Último mensaje 23 Septiembre 2016, 05:08 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines