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

whdugh 2012-10-27 04:15:30
自己写的一段(很烂),有个问题不知道怎么处理,就是当空格个数大于等于2时
#include <stdio.h>
int main()
{
int c, n, done;
done = 1;
while(done)
{
c = getchar();
if (c == ' ')
{
++n;
if (n >=2)
{
c = ' ';
putchar(c);
}
else
putchar(c);
}
else
{
n = 0;
putchar(c);
}

if(c == EOF)
done = 0;
}

return 0;
}
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whdugh 2012-10-27
  • 打赏
  • 举报
回复
#include <stdio.h>
/* count lines in input */
int main()
{

int c, pc;
pc = EOF;
while ((c = getchar()) != EOF)
{
if (c == ' ')
if (pc != ' ') /* or if (pc != c) */
putchar(c);
/* We haven't met 'else' yet, so we have to be a little clumsy */
if (c != ' ')
putchar(c);
pc = c;
}
return 0;
}
为什么要吧pc初始化为 EOF啊 ?
whdugh 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
C/C++ code


#include <stdio.h>
int main()
{
int c, n, done;
done = 1;
while(done)
{
c = getchar();
if (c == ' ')
{
++n;
i……
[/Quote]嗯 谢谢 想明白了
scream7 2012-10-27
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
int c, n, done;
done = 1;
while(done)
{
c = getchar();
if (c == ' ')
{
++n;
if (n >=2)
{
//c = ' ';
//putchar(c);
//啥也不做就行了
}
else
putchar(c);
}
else
{
n = 0;
putchar(c);
}

if(c == EOF)
done = 0;
}

return 0;
}
manxiSafe 2012-10-27
  • 打赏
  • 举报
回复
再加个 标志位

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧