Autor
|
Tema: Como cifrar letra por letra en C++ (Leído 64,922 veces)
|
Royca3
|
Hola amigos bueno se me ha pasado por la cabeza la idea de crear una forma de cifrar letras y números pues bueno ya he creado la forma de cifrado pero no quise quedarme en esto nada mas pensé en hacer un programa que me pidiera una palabra o una frase y que la ecripte, pero los únicos comandos que me sabia eran los de la Shell X’D pues decidí leer un poco sobre C++, Bueno y de lectura en lectura me ayudaron con lo siguiente : #include<stdio.h> #include<conio.h> #include<dos.h> void main(void) { printf("Ingrese la palabra: "); scanf("%s"); char cad[10]="%s"; clrscr(); for(int a=0;a<10;a++) { printf("%c\n",cad[a]); } getch(); }
Pero el código no realiza la función que yo quiero (aclaro hay lo único que hace es pedirle al usuario que ingrese una palabra y la separe letra por letra) pero esa no es mi meta si alguien podría ayudarme con esto le agradecería sinceramente. Saludos.
|
|
|
En línea
|
Homo erectus
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
#include<stdio.h> int main() { char Palabra[256]; int i = 0; fgets (Palabra ,255,stdin ); for (i = 0; i < strlen(Palabra );i ++) return 0; }
Has cumplido varias violaciones a la norma (void main, librería conio,dos y uso de getch()).
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Pero el código no realiza la función que yo quiero (aclaro hay lo único que hace es pedirle al usuario que ingrese una palabra y la separe letra por letra) pero esa no es mi meta si alguien podría ayudarme con esto le agradecería sinceramente.
¿Y que más querías que hiciera?. El código hace ni más ni menos lo que tú le has implementado y, lo único que has hecho es imprimir una cadena introducida por teclado, ¿crees que te adivina el pensamiento y "él" añade el resto del código?. Y aún el caso de imprimir la cadena es aventurado, toda vez que presupones que el usuario va a introducir una cadena de justitos diez caracteres. Mejor sería:#include<stdio.h> #include<stdlib.h> int main(void) { int i=0; char cadena[10]; printf("Ingrese la palabra: "); scanf("%10s",&cadena); for(i=0;cadena[i]!='\0';i++) printf("%c ",cadena[i]); getchar(); return 0; }
De esta manera te aseguras "tomar" sólo diez caracteres.
Además de lo comentado por amchacon te aconsejaría leer algo sobre el tema de cifrado.
Si estas empezando te diría que te mires el cifrado de César, así para empezar con uno sencillo. Saluditos! .... ..P.D: amchacon ,te faltó en el código la librería string.h para hacer uso de strlen. Sí, ya sé que son las prisas. A esta hora y ya estamos como motos
|
|
|
En línea
|
|
|
|
daryo
|
aca tienes un ejemplo en c++ cifrar.cpp #include <iostream> #include <string> using namespace std; int main() { string frase; cout << "escriba una frase" << endl; getline(cin,frase); int n=1; for(int tamano=0;tamano<frase.size();tamano++) { char letra=frase[tamano]+n; cout << letra; n++; if(n>10) { n=1; } }
descifrar.cpp #include <iostream> #include <string> using namespace std; int main() { string frase; cout << "escriba una frase cifrada" << endl; getline(cin,frase); int n=1; for(int tamano=0;tamano<frase.size();tamano++) { char letra=frase[tamano]-n; cout << letra; n++; if(n>10) { n=1; } } }
|
|
« Última modificación: 10 Junio 2013, 17:01 pm por daryo »
|
En línea
|
buenas
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
aca tienes un ejemplo en c++ Y aquí uno en C:#include<stdio.h> int main() { char Palabra[256]; int i = 0; puts ("\Introduzca palabra o frase a cifrar:"); fgets (Palabra,255,stdin); puts ("\nLa frase es:"); for (i = 0;Palabra[i]!='\0';i++) printf("%c ",Palabra[i]); puts ("\nCiframos la frase"); for (i = 0; Palabra[i]!='\0';i++) { Palabra[i]+=i; printf("%c ",Palabra[i]); } puts ("\n\nDesiframos la frase"); for (i = 0; Palabra[i]!='\0';i++) { Palabra[i]-=i; printf("%c ",Palabra[i]); } puts ("\n\nPresione ENTER para salir"); getchar(); return 0; }
Saluditos! .... ..
|
|
« Última modificación: 10 Junio 2013, 19:03 pm por leosansan »
|
En línea
|
|
|
|
Royca3
|
Y aquí uno en C:#include<stdio.h> int main() { char Palabra[256]; int i = 0; puts ("\Introduzca palabra o frase a cifrar:"); fgets (Palabra,255,stdin); puts ("\nLa frase es:"); for (i = 0;Palabra[i]!='\0';i++) printf("%c ",Palabra[i]); puts ("\nCiframos la frase"); for (i = 0; Palabra[i]!='\0';i++) { Palabra[i]+=i; printf("%c ",Palabra[i]); } puts ("\n\nDesiframos la frase"); for (i = 0; Palabra[i]!='\0';i++) { Palabra[i]-=i; printf("%c ",Palabra[i]); } puts ("\n\nPresione ENTER para salir"); getchar(); return 0; }
Saluditos! .... .. Muchas gracias a todos y perdón por mi ignorancia.... Bueno Te agradezco a ti leosansan Este Programa era el que buscaba... Saludos. (Excelente Foro
|
|
|
En línea
|
Homo erectus
|
|
|
daryo
|
(Excelente Foro si que lo es
|
|
|
En línea
|
buenas
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
Aquí otro ejemplo caesar: #include <iostream> using namespace std; int main() { string palabra = ""; //Creamos e inicalizamos variables int numero = 0; int TamanyoPalabra = 0; cout << "Palabra? >> "; cin >> palabra; // 1 i 2 paso cout << "Veces a correr >> "; cin >> numero; // 3 paso TamanyoPalabra = palabra.length(); // 4 paso for (int i = 0; i < TamanyoPalabra ; i++) { // 4 paso for (int z = 0; z < numero; z++) { palabra[i]++; } // 5 paso } // 6 paso cout << palabra; // Mostrar palabra cifrada return 0; //Salir }
FUENTE Y MÁS INFORMACIÓN DEL CODE: http://www.infiniterware.net/tutoriales/programacion-general/Caesar-cipher-C++.htmlSaluuuuuuu2
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Aquí otro ejemplo caesar:
Pues no, ni el tuyo ni el de daryo ni el mío con cifrados tipo César, al menos como yo veo los códigos.
Yo lo que hice en el post fue sugerirle que lo mirará pero no dije que en mi código lo aplicará. Me fui, como daryo, a lo fácil que es incrementar la variable letra sencillamente, mientras que en el cifrado César hay que tener en cuenta que si se llega a la las letras finales del abecedario se cuentan las últimas y, si faltan, se sigue la suma por las primeras.
Más información en Cifrado César cortesía de Wikipedia.Saluditos! .... ..
|
|
« Última modificación: 10 Junio 2013, 21:55 pm por leosansan »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Codificacion en archivos bat, letra ñ
Scripting
|
santi810
|
3
|
12,239
|
1 Diciembre 2013, 18:57 pm
por Eleкtro
|
|
|
[DUDA] Como Desactivar Dispositivos Portátiles Para Que Se Le Asigne Una Letra
Windows
|
KZN
|
3
|
2,916
|
11 Marzo 2014, 17:00 pm
por Randomize
|
|
|
Dibujar letra 'T'
PHP
|
luchi
|
2
|
2,387
|
20 Abril 2014, 22:14 pm
por luchi
|
|
|
Como con una letra direccionarme a la tabla/registro?
Programación C/C++
|
enzopaez14
|
1
|
2,109
|
5 Septiembre 2016, 02:50 am
por AlbertoBSD
|
|
|
Comparar letra una letra en un array, con una letra del abcdario
Programación C/C++
|
Naimaderis
|
2
|
3,964
|
10 Marzo 2017, 04:24 am
por Naimaderis
|
|