关于输入复制到输出 , 连续的多个空格用一个空格代替的有关问题

关于输入复制到输出 , 连续的多个空格用一个空格代替的问题
c程序设计语言里的一个课后作业题:输入复制到输出 , 连续的多个空格用一个空格代替的问题
请问下 连续的多个空格用一个空格 这个程序是怎么实现的,为什么inspace=1的时候,就可以替换空格了。
多谢各位大神了。。。
#include <stdio.h>
 
int main(void)
{
  int c;
  int inspace;
 
  inspace = 0;
  while((c = getchar()) != EOF)
  {
  if(c == ' ')
  {
  if(inspace == 0)
  {
  inspace = 1;
  putchar(c);
  }
  }
 
  /* We haven't met 'else' yet, so we have to be a little clumsy */
  if(c != ' ')
  {
  inspace = 0;
  putchar(c);
  }
  }
 
  return 0;
}

------解决方案--------------------
inspace=1是用于表示第一个空格,如果后面还有空格那么就不输出即if (inspace==0)条件不满足。当遇到非空格的,这个值又变为0,执行输出对应的字符。
------解决方案--------------------
探讨

为什么能用inspace=1来表示第一个空格???引用:

inspace=1是用于表示第一个空格,如果后面还有空格那么就不输出即if (inspace==0)条件不满足。当遇到非空格的,这个值又变为0,执行输出对应的字符。