编写一个将输入复制到输出的程序,并将其中连续多个空格用一个空格代替。

#include<stdio.h>intmain(void){intc;intinspace;inspace=0;while((c=getchar())!=EOF){if... #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;
}
程序是这样的,基本上理解,但是后面那个并将连续多个空格用一个空格代替不怎么理解,不知道这里IF语句是怎么实现的。请网友解释下:感谢!!!
展开
 我来答
百度网友6efbdae
推荐于2018-03-19 · TA获得超过101个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:100万
展开全部
1、大的两个if是判断c是不是空格,第一个是空格,第二个不是空格;
2、如果输入的不是空格则执行c!=,字符直接输出;
3、如果输入的是空格则执行c==,进入里面判断是不是第一个空格,inspace是区分是否第一个空格用的。如果是第一个inspace应该等于0,将inspace置1;后面的空格会因为inspace为1而不输出;直到遇到下一个不为空格的字符才将inspace置0,等待下次第一个空格。
末来很美好
2017-03-07 · TA获得超过360个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:96.9万
展开全部
#include<stdio.h>
main()
{
char c;
int n=0;
while((c=getchar())!=EOF)
{
if(n>1&&c!=' ') //判断连续空格是否大于1且当前字符不是空格
{
n=0; //输出一个空格并计数置0
putchar(' ');
}
else if(n==1&&c!=' ')//如果只有一个空格且当前字符不是空格
{
n=0; //输出一个空格并计数置0
putchar(' ');
}

if(c!=' ') //不是空格就正常输出
putchar(c);
else //是空格则空格数+1
n++;
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友578ae04
2012-05-17 · 超过10用户采纳过TA的回答
知道答主
回答量:75
采纳率:100%
帮助的人:20万
展开全部
这其中用到了 这个变量。首先将0赋给 inspace,在遇到空格符时,若inspace=0则输出字符,非0则不输出。所以在遇到首个空格符时输出空格并把1赋给inspace,若后面有紧跟着的空格,则会因为此时inspace的值已是1而不再输出空格。直到遇到连续的空格符后的第一个非空格符后,再把0赋给inspace,这样再遇到下一个空格符串时才可以接着输出首个空格符,也就是回到前面的过程。 就这样循环下去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华哥vi9ts
2010-12-24 · TA获得超过834个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:305万
展开全部
前面的 if 是为了输出 第一个 空格,输出后 inspace=1 标记 变量C 读入的是空格 当下一次输入
字符时 若又是空格 ‘ ’ 则 不在输出。若不是空格
则 执行 第二个 if() 输出C 且 inspace=0 表示 输入的C 不是
空格 如下一次输入空格时 就会输出空格,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jipiv95
2010-12-24 · TA获得超过169个赞
知道答主
回答量:263
采纳率:0%
帮助的人:228万
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char s[1001];
gets(s);
n=strlen(s);
for(i=0;i<n;i++)
if(s[i]==' '&&s[i+1]==' ')
continue;
else
putchar(s[i]);
puts("");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式