Viernes 8 de Noviembre de 2024, 20:17
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Como encriptar y desencriptar en C (uso code block)
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Como encriptar y desencriptar en C (uso code block) (Leído 32967 veces)
maga10
Nuevo Miembro
Mensajes: 4
Como encriptar y desencriptar en C (uso code block)
«
en:
Jueves 3 de Diciembre de 2009, 18:54 »
0
Este es el codigo de lo que hice a la hora de compilarlo y ejecutarlo no hace nada, les agradeceria si alguien me pudiera ayudar..
/* Programa: Alumno: Practico N° 16, ejercicio 5
Autor: Gutierrez, Carina Magali
Fecha de entrga: 16/10/2009
Turno: tarde
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char encriptar_texto(char *pCh[]);
char desencriptar_texto(char encriptado[]);
int main()
{
char ch[20]={0}, encriptar, desencriptar, encriptado[20];
char *pCh[20]={0};
int i;
printf("ingrese un texto: ");
scanf("%s", ch);
for (i=0 ; i<20 ; i++)
{
pCh
= &ch
;
}
encriptar = encriptar_texto(pCh);
printf("nEl texto encriptado es: %c", encriptar);
desencriptar = desencriptar_texto(encriptado);
printf("nEl texto desencriptado es: %c", desencriptar);
return 0;
}
char encriptar_texto(char *pCh[])
{
char encriptado[20];
int i;
for (i=0 ; i!='n' ; i++)
{
encriptado
= *pCh
+ 3;
//printf("nEl texto encriptado es: %c", encriptado
);
}
return 0;
}
char desencriptar_texto(char encriptado[])
{
char desencriptado[20];
int i;
for (i=0 ; i!='n' ; i++)
{
desencriptado
= encriptado
- 3;
//printf("nEl texto desencriptado es: %c", desencriptado
);
}
return 0;
}
Tweet
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Como encriptar y desencriptar en C (uso code block)
«
Respuesta #1 en:
Jueves 3 de Diciembre de 2009, 21:12 »
0
Tienes varios errores.
1. En las funciones encriptar y desencriptar regresas un char, pero en el return de las funciones pones 0, o sea nada.
2. Utilizas variables de tipo char para guardar los textos encriptados/desencriptados, cuando deberias utilizar arreglos de char, o sea, encriptar[20], desencriptar[20].
3. La condicion de los ciclos for esta equivocada, preguntas i = 'n', cuando deberia ser cadena
!= ' ', ya que lo que debes preguntar es si llegamos al fin de la cadena, ademas ' ' es el terminador de las cadenas.
4. Para imprimir la cadena encriptada/desencriptada utilizas %c, deberias ser %s, una vez que cambies las variables encriptar/desencriptar de tipo char a tipo arreglo de char (o sea, cadena).
5. Tus funciones encriptar/desencriptar regresan un char, cuando deberian regresar un char* (puntero a char), aunque te recomendaria que en lugar de funciones que regresen un valor, utilices funciones void, y mejor pongas como parametros la cadena sin encriptar y la cadena encriptada en la primera funcion, y en la segunda funcion pon como parametro la cadena encriptada y la cadena desencriptada.
Esos serian los principales, corrijelos, y suerte.
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
JrcsDev
Miembro MUY activo
Mensajes: 245
Nacionalidad:
Re: Como encriptar y desencriptar en C (uso code block)
«
Respuesta #2 en:
Viernes 4 de Diciembre de 2009, 07:58 »
0
No quiero ser sapo, pero publicaste este mismo mensaje mas de una vez?
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...
maga10
Nuevo Miembro
Mensajes: 4
Como encriptar y desencriptar en C (uso code block)
«
Respuesta #3 en:
Viernes 18 de Diciembre de 2009, 20:38 »
0
Aca esta el codigo mejorado y andando por ahi a alguien le sirve, yo estuve buscando algo asi y no encontre en ningun lado!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define N 80
void encriptarFrase();
void desencriptarFrase();
int largo;
char frase[N];
int main ()
{
printf("Ingrese la frase: ");
gets(frase);
largo = strlen(frase);
encriptarFrase();
printf("La frase encriptada es: %sn",frase);
desencriptarFrase();
printf("La dfrase desencriptada es: %sn",frase);
return 0;
}
void encriptarFrase ()
{
int i;
for(i=0 ; i<largo ; ++i)
{
//convierte las minuscalas a mayuscula.
*(frase + i) = toupper(*(frase + i));
//descarta los digitos
if(isalpha(*(frase + i)))
{
//verifica los casos especiales X-Y-Z
if(*(frase + i) > 87)
{
*(frase+i) = *(frase+i) - 23;
}
else
{
*(frase + i) = *(frase + i) + 3;
}
}
}
}
void desencriptarFrase ()
{
int i;
for(i=0 ; i<largo ; ++i)
{
if(isalpha(*(frase + i)))
{
if(*(frase + i) < 68)
{
*(frase+i)= *(frase+i) + 23;
}
else
{
*(frase+i)= *(frase+i) - 3;
}
}
}
}
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Como encriptar y desencriptar en C (uso code block)