来源于《The C Programming Language》的一道习题(P13,PR1-9):

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

自己实现:

#include <stdio.h>

int main()
     {

int c, flag;

flag = 0;
         while((c = getchar()) != EOF)
                if(c == ' ' && flag == 0)
                {
                       putchar(c);
                      ++flag;
                }
                else if(c == ' ' && flag != 0)
                      ++flag;
                else
                {
                      flag = 0;
                      putchar(c);
                }

return 0;

}

参考代码:

#include <stdio.h>

#define NONBLANK 'a'

int main()
     {

int c, lastc;

lastc = NONBLANK;
          while((c = getchar()) != EOF)
          {
                 if(c != ' ')
                       putchar(c);
                 if(c == ' ')
                        if(lastc != ' ')
                               putchar(c);
                 lastc = c;
          }

return 0;

}

比较两段代码,发现自己的代码还是嫩了些:

1. 对于flag变量,有点幻数的感觉(不知道这个比喻恰不恰当,哈哈),当别人在读代码时,不能一眼看出它的含义,而参考代码中

使用的宏NONBLANK就不存在这方面的问题。

2. 在程序主体结构中,对于判断条件的组织及if else语句的使用上,没有参考代码中的简洁和高效

转载于:https://www.cnblogs.com/roma823/archive/2011/07/10/2102308.html

在输出终端中消除多余空格相关推荐

  1. Python问题记录:如何处理中文网页中的多余空格

    在制作Epub电子书的时候,因为有从网络上下载的格式比较混乱的电子书,现在打算自己用Pythonc处理一下. 1.如何删除掉网页(html)中的多余空额.尤其是包含在tag(标签:span.p)当中的 ...

  2. 如果去掉数学前后的空格_excel表格数据消除前后空格-EXCEL表格中数据后面的空格怎么去掉,一条条手工删......

    excel表格中,单元格的内容后面总是有一个空格,怎... 准备工具/材料:windows10电脑,excel软件. 单元格的内容后面去除空格的方法如下: 1.首先,打开需要设置的excel文件. 2 ...

  3. 删除字符串中各单词间多余空格

    删除字符串中各单词间多余空格 编程实现删除字符串中各单词间多余空格,只保留一个空格.如果字首字符中有连续空格,应完全删除:如果非字母字符前后有空格应该将空格完全删除:如果末尾是一连续空格也应将其删除. ...

  4. Word如何删除中英文混排中中文间的多余空格

    如何快速批量删除word中多余的空格呢,尤其是中英文混排的文档,有时会有连续的多个空格,如何去掉中文中的空格,同时保留英语单词间的空格呢.今天就和朋友们说说去掉word中空格的简单好用的方法吧! 1. ...

  5. 批量删除Word中回车、多余空格和空…

    批量删除Word中回车.多余空格和空行的方法 一.如何批量删除Word文档中回车 有时候我们需要把内网信息传到省网和外网时,会发现将文章复制到Word文档进行编辑时,出现了带有好多向下箭头的符号这就是 ...

  6. 编写一个函数,从一个字符串中去除多余的空格。

    这道题是<C和指针>上面的习题,出自于65页第7题,题目描述为: 编写一个函数,从一个字符串中去除多余的空格.函数的原型应该如下: void   deblank( char  string ...

  7. 《Word中批量去除多余空格、空行、换行》

    当我们从pdf文件中复制文字时往往会出现有很多多余空格符.空行符.换行符号的情况: 下面记录一下在word中如何批量去除多余空格.空行.换行等符号: 1.去多余换行符:按下快捷键:Ctril+H,在查 ...

  8. iOS 去除字符串中的空格或多余空格(适合英文单词)

    NSString -stringByTrimmingCharactersInSet: 是个你需要牢牢记住的方法.它经常会传入 NSCharacterSet +whitespaceCharacterSe ...

  9. C++用substr()函数消除前后空格

    最近做了个题目,遇到了要将字符串前后空格消除的细节问题.在Java中好像有一个字符串函数为trim()可以消除字符串后的空格.对于c++,查了一下,可以引用一个c++标准库Boost,可以轻松解决,但 ...

最新文章

  1. 不小心关闭了explorer.exe进程,桌面变白解决办法
  2. WinRT开发语言的功能和效率
  3. linux mysql 8安装教程,MySQL8系列安装与配置教程(Linux环境)
  4. 前端开发~uni-app ·[项目-仿糗事百科] 学习笔记 ·004【App.vue引入全局公共样式】
  5. JavaScript--eval
  6. 台达cp2000的面板怎么调节_吊灯怎么安装 吊灯怎么固定在顶上的
  7. ajax和jquery教程pdf,jquery ajax教程pdf
  8. Verilog 语法小结
  9. 局域网网络流量监控_【网络监控与安全】主要网络流量处理技术
  10. 一次成功编译Bilibili安卓播放器
  11. 怎样在网站中添加google统计代码
  12. 计算机无法共享访问受限,设置组策略解决共享访问受限问题
  13. 必考面试题:浏览器怎么渲染页面的
  14. Vue3生命周期及事件写法
  15. 【SAP Abap】关于销售凭证VBKD业务数据表的使用与注意事项
  16. 15. Linux系统中的磁盘管理
  17. 3D打印出活体心脏,AI让你体验登月!|技术前沿洞察
  18. Lambda表达式秒用——SerializedLambda序列化
  19. 以太坊源码分析(10)CMD深入分析
  20. springboot yml使用

热门文章

  1. go test 如何输出到控制台_深度剖析 Go 中的 Go 协程 (goroutines) -- Go 的并发
  2. coco showanns不显示_coco奶茶加盟好不好?【5月官网最新公布】加盟费用+加盟流程...
  3. 信息安全工程师笔记-案例分析(二)
  4. Linux笔记-scp或ftp或sftp传文件后最后修改时间
  5. Java笔记-读取资源文件应该注意的问题(大文件解析、\r\n分割相关的)
  6. Java笔记-通过反射获取注解及Spring中获取某包下的所有class文件
  7. java的主函数在哪_打开一个别人的文件,一堆.java, 怎么知道main函数在哪里?
  8. python语言训练教程_PYTHON零基础快乐学习之旅(K12实战训练)
  9. 数据结构之树、森林、二叉树的转化
  10. 动态库的链接和链接选项-L,-rpath-link,-rpath