Cadena de reversa utilizando punteros.

Estoy tratando de revertir una cadena usando punteros. Cuando intento imprimir la cadena invertida en lugar de obtener DCBA, salgo solo como BA. ¿Alguien puede ayudarme en esto?

<code>#include<stdio.h>
void reverse(char *);
void main()
{
  char str[5] = "ABCD";
  reverse(str);
}

void reverse(char *str)
{
  char *rev_str = str;
  char temp;
  while(*str)
      str++;
  --str;

  while(rev_str < str)
  {
      temp = *rev_str;
      *rev_str = *str;
      *str = temp;   
      rev_str++;      
      str--;
  }
  printf("reversed string is %s",str);
}
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta