Programación General > C/C++

 Modificando Una Cadena

(1/3) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa