Реверс строки с помощью указателей

Я пытаюсь перевернуть строку, используя указатели. Когда я пытаюсь напечатать обратную строку вместо получения DCBA, я выхожу только как BA? Может кто-нибудь помочь мне в этом?

<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>

Ответы на вопрос(2)

Ваш ответ на вопрос