/******** Programa hecho por Raul Marmolejo ********/
/******** rm3 kReAtIoNz ********/
/******** raulgerardo@marmolejo.net ********/
/******** para: www.lawebdelprogramador.com ********/
/* Programa creado por Ra£l Marmolejo
Invierte una cadena,...*/
#include <stdio.h>
int main()
{
char i,j;
char longitud;
char cadena[50];
char temporal;
clrscr ();
printf("Introduce un texto (menos de 50 caracteres): ");
gets(cadena);
longitud=strlen(cadena);
for (i=0,j=longitud-1; i<longitud/2; i++,j--)
{
temporal=cadena[i];
cadena[i]=cadena[j];
cadena[j]=temporal;
}
printf("Resultado: %s\n", cadena);
getch ();
}
/* Prueba el programa pero cambiando la l¡nea del for por:
for (i=0,j=longitud; i<longitud/2; i++,j--)
es decir, quitando el -1 de la j. Ahora el programa no mostrar nada
a la salida. Esto pasa porque ponemos el carácter '\0' del final de la cadena al
principio y por tanto aunque haya más caracteres después la cadena
queda vacía. Recuerda que el símbolo '\0' indica el final de la cadena.
Todo lo que haya después no se muesta.
*/
Comentarios sobre la versión: Versión 1 (10)
void invierte (char *dest, const char *orig)
{
int i=0, j;
j = strlen(orig) - 1;
while (j) dest[i++] = orig[j--];
}
void invierte (char *dest, const char *orig)
{
int i=0, j;
j = strlen(orig);
while (j--) dest[i++] = orig[j];
}
Aprende Metodología de la Programación (y vete a un psicólogo)
En el programa que has hecho no hay punteros y realmente no es bueno.