Programación General > C/C++
Puntero a una cadena.
(1/1)
badyalberto:
--- Código: C++ --- #include<stdio.h>#include<string.h> int inverteix(char *ini, char *fi); int main(){ char frase[100]; char *fi; printf("Introdueix una frase n"); gets(frase); fi=frase; while(*fi!='') fi++; inverteix(frase,fi); puts(frase); getchar();getchar();}int inverteix(char *ini,char *fi){ char aux1,aux2; while (ini<=fi) { aux1=*ini; aux2=*fi; *ini=aux2; *fi=aux1; ini++; fi--; } return fi;}
Pq no me devuelve el resultado de fi, y no me printa nada :S
Eternal Idol:
El primer caracter termina siendo 0, el caracter final al que apunta fi, depuralo (con fi - 1 te funcionaria; no tiene sentido el valor ni el tipo ni el retorno en si mismo de inverteix).
m0skit0:
Mueves el carácter al principio de la cadena, cosa que no deberías hacer si lo que quieres es invertir la cadena. Prueba así:
--- Código: C ---while(*fi!='') fi++;inverteix(frase,--fi);
P.D: la próxima vez explica cuál es el problema, yo no tengo por qué saber qué pretendes hacer... :bad: :bad:
badyalberto:
--- Cita de: "m0skit0" ---Mueves el carácter al principio de la cadena, cosa que no deberías hacer si lo que quieres es invertir la cadena. Prueba así:
--- Código: C ---while(*fi!='') fi++;inverteix(frase,--fi);
P.D: la próxima vez explica cuál es el problema, yo no tengo por qué saber qué pretendes hacer... :bad: :bad:
--- Fin de la cita ---
Con esto me muestra solo la primera letra :S
m0skit0:
Porque modificas el valor del puntero frase dentro de la función. ¿Por qué no le dedicas un poco de tiempo antes de postear? Ya te lo dijo Eternal Idol: depura.
Navegación
Ir a la versión completa