#include <stdio.h>
char* reversaDeCadena(char* cadena)
{
// Necesitamos un char temporal, un puntero al inicio y otro al final de la cadena
char temp, *inicio, *final;
// Asignar a inicio cadena, asignar a final inicio.
final = inicio = cadena;
// Buscamos el final de la cadena: el char 0
while (*final++);
// Necesitamos apuntar al último char no al siguiente después del 0
final -= 2;
// Intercambiamos hasta llegar a la mitad, el resto ya estará en reversa
while (inicio < final)
{
temp = *inicio;
// Apuntar al siguiente desde el inicio, después de asignar el apuntado por final al apuntado por inicio.
*inicio++ = *final;
// Apuntar al anterior desde el final, después de asignar al apuntado por final.
*final-- = temp;
}
return cadena;
}
int main()
{
char s[] = "MJRASP";
printf("%sn", reversaDeCadena(s));
return 0;
}