qwe1231069 发表于 2016-11-23 10:54:55

简单问题求思路

本帖最后由 qwe1231069 于 2016-11-23 11:44 编辑

问题是这样的:
编写程序,将输入复制到输出,将相连的多个空格用一个空格替代

我的想法是利用循环
while((c=getchar())!='q')//输入q退出
{
        if(c==' ')
        {
                c=getchar();
        }
        printf("%c",c);
}
我想先去掉空格,事实证明我连这都做不到,思路根本不对。求指教

小剑剑 发表于 2016-11-23 11:10:27

这样肯定不行啊,连续的空格你只删除了一个
#include<stdio.h>

int main()

{
    char c;
    while((c=getchar())!='q')
    {
      if(c==' ')
      {
      while(c==' ')
      {
            c=getchar();

      }
      printf("%c",' ');
      }
      printf("%c",c);
    }


    return 0;

}

仰望天上的光 发表于 2016-11-23 11:13:54

1. while((c=getchar())!=q) 这里应该是'q'吧?
2.if(c=' ')这里应该是c == ' '吧?
3.   if(c==' ')这里的if只会执行一次,最多去掉一个空格,应该改为while吧?
综上,LZ应该先写些更简单的代码

qwe1231069 发表于 2016-11-23 11:43:34

仰望天上的光 发表于 2016-11-23 11:13
1. while((c=getchar())!=q) 这里应该是'q'吧?
2.if(c=' ')这里应该是c == ' '吧?
3.   if(c==' ')这 ...

的确犯了很多低级错误
下次会注意的

qwe1231069 发表于 2016-11-23 11:45:35

小剑剑 发表于 2016-11-23 11:10
这样肯定不行啊,连续的空格你只删除了一个

谢谢

moonrover 发表于 2016-11-23 17:39:31

{:10_327:}

FishC_小宇 发表于 2016-11-23 21:08:40

连续的空格只删除了一个
页: [1]
查看完整版本: 简单问题求思路