Programación General > C/C++
Modificando Una Cadena
Nagisa:
Hola. Tengo el siguiente codigo que te recorre una cadena y va modificando sus caracteres segun una funcion de ellos mismos. Esta funcion viene definida por
char funcion(char);
Para hacer esto he intentado lo siguiente:
void modifica(char* p){
while(*p != '\0'){
*p = funcion(*p);
p++;
}
}
Esto me compila y me hace todo bien, pero me da un error en tiempo de ejecucion. He conseguido aislar el error, pero no se solucionarlo. El error en concreto esta en la asignacion *p= ...
Pues eso. Por que falla y como se soluciona?? Muchas gracias
CiRRuS:
Que devuelve la funcion funcion(*p)???
Debería devolver un tipo char, no un puntero a char, es asi??.
Nos vemos :hola:
nicokiki:
Cirrus: *p apunta a una posicion de la cadena, esto es si la cadena es: "hola", *p apunta a "h", *(p+1) apunta a "o" y asi sucesivamente, por lo que no entiendo que es lo que hace mal la funcion de Nagisa.
En teoria creo q esta bien
Salu2!!!!
CiRRuS:
--- Citar ---una funcion de ellos mismos. Esta funcion viene definida por
char funcion(char);
--- Fin de la cita ---
Vaya, se me olvido esto... mmm, todo correcto, la función debe devolver un tipo char. Es cierto, creo que el código es correcto, no veo ningun problema a primera vista.
Vaya, lo siento por la anterior corrección :( , se me había pasado eso. Bueno, pa eso estamos todos, pa seguir aprendiendo :) ...
Nos vemos :hola:
Nagisa:
A mi tb me parece que todo funciona. Como os digo, el error es en tiempo de EJECUCION.
Lo compilo con el gcc, y lo ejecuto bajo Windows 95. No creo que sea por eso, aunque lo probare con otro SO (con el XP) y ya os contare.
Navegación
[#] Página Siguiente
Ir a la versión completa