Retornar un string
Hola, estoy a mitad de un trabajo grupal en el cual debemos hacer un programa que decodifique mensajes, los algoritmos son rot18 (adaptacion del 13), cifrado 4-cuadros y playfair, los cuales deben ser aplicados segun un orden (el cual no se conoce) contenido en un archivo externo.
Debe estar hecho en C++
Bueno, hasta ahora todo va bien, pero el problema surgio al crear las funciones como parte de un solo codigo, las cuales tomarian el mensaje y lo devolverian con los cambios hechos. Para editar el char[] no tengo problema, pero a la hora de usar el return si. ¿Alguien puede ayudarme?
Dejo un ejemplo sencillo de las funciones rot 18 + main:
(Al compilar el error lo arroja cuando llamo a la funcion ("ro=rot18(ro, number)")
"error: incompatible types when assigning to type ‘char[20]’ from type ‘char’";
#include
#include
char rot18(char code[20], int i){
int j;
char *pCode;
char rot1[18]={"ABCDEFGHIJKLMNOPQR"};
char rot2[18]={"STUVWXYZ0123456789"};
*pCode = code;
if(i<20)
code[20]=rot18(code, i+1);
for(j=0; j<18; j++){
if(code[i]==rot1[j]){
code[i]=rot2[j];
break;
}
if(code[i]==rot2[j]){
code[i]=rot1[j];
break;
}
}
return pCode;
}
int main() {
int i, j;
int number=1;
char ro[20];
printf("INGRESE EL CODEGO SECRETO\n");
scanf("%s",ro);
ro=rot18(ro, number);
printf("%s\n",ro);
return(0);
}
PD: Si por algun motivo quereis sugerir algun otro metodo, tiene que ser una funcion recursiva y sin comandos avanzados. Lo que se evalua es principalmente la recursion.
PD2: No puedo poner acentos
Gracias de antemano.
Desarrollo
Buah, hasta eso no llego.
De momento sólo vi fibonacchi como recursividad
https://desarrollo.gamersmafia.com/
Mucho mejor aquí
Movido a Desarrollo.
joder, y yo que creia que sabia algo de esto
Ya ves tío, yo también creía lo mismo. Me ha desmoralizado al ver esto
mierda si tengo una idea pero no tengo mis ejercicios ni mi pc para ayudarte. mierda.
Voy a cambiar la pregunta, ya que el problema planteado el otro día ya no cuenta, pero le marcare la mejor respuesta al que me ayude a entender porque este archivo tira un mapa de memoria y sobre como solucionarlo.
https://www.mediafire.com/?8vv1v730bmeb8wd
PD: Paralelamente tratare de solucionarlo mañana (aquí la hora es 0:58) y bueno, lo que sea primero. Aunque si lo soluciono y aun así alguien me ayuda de todas formas lo recompensare.
PD2: Por si alguien quería saber, un string no se puede igualar a algo para cambiarle el valor, para eso se usa un puntero o la función strcpy.
Ya se resolvió el problema, cerrad esto.
Esta pregunta lleva pendiente de respuesta demasiado tiempo y le está empezando a salir musgo verde así que me veo en la obligación de cerrarla. Si alguna de las respuestas es válida por favor avisad al staff.