Como cifrar letra por letra en C++

Iniciado por Royca3, 10 Junio 2013, 06:31 AM

0 Miembros y 3 Visitantes están viendo este tema.

Royca3

Cita de: amchacon en 12 Junio 2013, 20:15 PM
No elimines el return 0, vas en contra del estándar.

Pero si no ha pasado nada el programa corre normalmente!!!?

Intente con el

   getchar();

      return 0;

  getchar();

y no me funciono así que borre el return 0;
;D ?
Homo erectus

amchacon

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Royca3

Homo erectus

leosansan

#43
Cita de: amchacon en 12 Junio 2013, 21:09 PM
getchar();
getchar();
return 0;


El return es OBLIGADO en el estandar C , toda vez que de acuerdo  dicho estandar la función¡ón main ha de ser declarada con de tipo int y esto conconllleba a un return de un valor int,. Cositas del estandar. Otra cosa es que sin él te funcione ya que algunos compiladores son muy listos y "corrigen" ciertos aspectos del código.

Así que sigue las indicaciones de amchacon.

Saluditos!.
   





leosansan

Cita de: cpu2 en 12 Junio 2013, 18:59 PM
Y que sucede si en mi cadena tengo algun caracter estilo " @#$*{}", la tabla ascii no es solo el abecedario.

Estamos hablando del cifrado César y hay que colocar las cosas en su contexto histórico y de acuerdo a ello proceder,. ¿O es que en la época de Julio César existían los símbolos que mencionas'. Ni existía Internet, y por tanto @ ni los móviles con sus almohadillas # ni el dólar $, etc.

Así que para hacer códigos comparables, siñemosnos al estricto cifrado César.


Saluditos!.
     

leosansan

Cita de: CCross en 12 Junio 2013, 19:23 PM
Aqui va una versión mas eficiente


Lamentablemente se queda "corto ya que no permite introducir frases. Una pequeña mejora, pero reconozco que está ingenioso.


Saluditos!.
     

Royca3

Cita de: leosansan en 12 Junio 2013, 22:01 PM
El return es OBLIGADO en el estandar C , toda vez que de acuerdo  dicho estandar la función¡ón main ha de ser declarada con de tipo int y esto con nlleba a un return de un valor int,. Cositas del estandar. Otra cosa es que sin él te funcione ya que algun9s compiladores son muy listos y "corrigen" ciertos aspectos del código.

así que sigue las indicaciones de amchacon.

Saluditos!.
     

Ok gracias No sabia eso!  :P





Homo erectus

cpu2

El cifrado César lo único que hace para cifrar es sumar 3 a cada carácter y para descifrar restar, por lo que he leido.

Aqui esta el mio pero en ASM.

Código (asm) [Seleccionar]
_C.0:

incl %edx
scasb
jne _C.0

_C.1:

decl %edi
addb $0x3, (%edi)
decl %edx
jne _C.1

movl %edi, %eax
ret


Cita de: leosansan en 12 Junio 2013, 22:09 PM

Así que para hacer códigos comparables, siñemosnos al estricto cifrado César.

Ese código es el cifrado César, solo para el abecedario lo veo una tonteria.

Un saludo.

Royca3

Cita de: cpu2 en 12 Junio 2013, 23:23 PM
El cifrado César lo único que hace para cifrar es sumar 3 a cada carácter y para descifrar restar, por lo que he leido.

Aqui esta el mio pero en ASM.

Código (asm) [Seleccionar]
_C.0:

incl %edx
scasb
jne _C.0

_C.1:

decl %edi
addb $0x3, (%edi)
decl %edx
jne _C.1

movl %edi, %eax
ret


Ese código es el cifrado César, solo para el abecedario lo veo una tonteria.

Un saludo.

Perdón mi ignorancia pero como ejecuto un code en ASM?
(ademas en el titulo dice C/C++)

Saludos.
Homo erectus

cypascal

#49
Creo que no hace falta compilarlo, con la ventana de comandos de windows probablemente baste.

Edito: Si que hace falta por lo menos un ensamblador.

Salu10
Problemas interesantes de programación en C/C++ y Pascal en:
BLOG C/C++


WWW.CYPASCAL.BLOGSPOT.COM.ES