C的程序,麻烦查下原因,告知.解决办法

C的程序,麻烦查下原因,告知..
输入连续的字符串中间包含空格(如afdgg dggg),ENTER后输出afdgg,并且摁下空格,再ERTER后输出dggg,为什么不能连续输出啊??还得再加个空格ENTER呢???求帮助
#include<stdio.h> 
#include <string.h>
int main()
{
 char ch;
 int i=0,j;
 char a[10];
 printf("请输入:"); 
 ch=' ';
 while(ch==' ') //跳过空格 
 {printf("出现空格\n");
  ch=getchar();
  while(ch!=' ') //下面的while跳出后,输出连续的字符串 
  {while(ch!=' ') //得到连续的字符串,遇到空格跳出 
  {
  a[i]=ch;
  ch=getchar();
  i++;
  }
  for(j=0;j<i;j++)
  printf("%c",a[j]);
  printf("\n");
  i=0;
  }
 } 
// retrun(0);
printf("运行没问题");
}

------解决方案--------------------
#include <stdio.h>
#include <string.h>

int main()
{
char str[]="afdgg dggg";
int i=0;
while(i<strlen(str))
if(str[i]==' ')
str[i]='\0';
char* p;//这个方便
do{
printf("%s",p);
p+=strlen(p)+1;
}while(*p!='\0');//这个不科学,你自己再想
return 0;
}