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

[0] Índice de Mensajes

Ir a la versión completa