String mit Zeigern umkehren

Ich versuche, eine Zeichenfolge mit Zeigern umzukehren. Wenn ich versuche, die umgekehrte Zeichenfolge zu drucken, anstatt DCBA zu erhalten, werde ich nur als BA ausgegeben. Kann mir jemand dabei helfen?

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage