Invertir cadena de caracteres en C

Sadako
20 de Marzo del 2005
Alguien me podria decir como invertir una cadena de caracteres en C ( no en C++). Consigo invertir la cadena pero delante de ella, me salen caracteres extraños.
Gracias de antemano

noel solw
20 de Marzo del 2005
Existe una funcion strrev(a), que invierte los caracteres de una cadena a, pero no estoy seguro que corresponda a C.
Puedes escribir tu propia funcion :

#include <string.h>
#include <stdio.h>

int main()
{
char *a = "esto es una cadena de caracteres.";
int len = strlen(a)-1;
puts(a);
for(int i = 0;i < len/2;i++)
{
char x = a[i];
a[i] = a[len-i];
a[len-i] = x;
}
puts(a);
return 0;
}