c语言 颠倒字符串的程序,该怎么处理

c语言 颠倒字符串的程序
我是菜鸟啊,学编程没有天赋啊,求大神指教
函数reverse目的是将字符串中的字符顺序颠倒过来。但运行结果只是复制字符串,没有颠倒,求指教
#include <stdio.h>
#define MAXLINE 1000
void reverse(char line[]);
int getline(char line[],int maxline);
void main()
{
  char line[MAXLINE];
  while(getline(line,MAXLINE)>0)
  {
  reverse(line);
  printf("%s",line);
  }
}
void reverse(char line[])
{
  int i=0;
  int j=0;
  char temp;
  if(line[i]!='\0')
  i++;
  i--;
  if(line[i]=='\n')
  --i;
  while(j<i)
  {temp=line[j];
  line[j]=line[i];
  line[i]=temp;
  i--;
  j++;
  }
}
int getline(char s[],int lim)
{
  int i,c;
  for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
  s[i]=c;
  if(c=='\n')
  {s[i]=c;
  ++i;
  }
  if(c=='\0')
  s[i]=c;
  return i;
}


------解决方案--------------------
要学会debug