大家好,看一个字符串删除的有关问题

大家好,看一个字符串删除的问题
main()
{   char   *delstring(char   a[],int   i,int   j);
char   s[50];
scanf( "%s ",s);
delstring(s,1,2);
printf( "%s ",s);
}
char   *delstring(char   a[],int   i,int   j)
{
char   *p=a+i-1;
char   *q=a+i+j-1;
if(*q!= '\n ')
{*p++=*q++;}
*p= '\n ';
return   a;
}


输入:abcdefg
输出:c
          cdefg

这是为什么呢?请高手指点!

------解决方案--------------------
小改一下可以基本满足你的要求
#include <stdio.h>
#include <stdlib.h>

void main()
{
char *delstring(char a[], int i, int j);
char s[50];
scanf( "%s ", s);
delstring(s, 2, 2);
printf( "%s ",s);
}

char *delstring(char a[], int i, int j)
{
char *p = a+i-1;
char *q = a+i+j-1;
while(*q != '\0 ')
*p++ = *q++;

*p= '\0 ';
return a;
}