读书人

关于输入复制到输出 连续的多个空格

发布时间: 2012-10-21 09:00:07 作者: rapoo

关于输入复制到输出 , 连续的多个空格用一个空格代替的问题
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,执行输出对应的字符。

读书人网 >C++

热点推荐