字符串反转求分析为何输出有误
#include"stdio.h"
#include<string.h>
char str[100];
void reverse();
main()
{
gets(str);
reverse();
printf("%s",str);
}
void reverse()
{
int n,i;
char temp;
n=strlen(str);
for(i=0;i<n/2;i++)
{temp=str[i];
str[i]=str[n-i+1];
str[n-i+1]=temp;}
}