在输出终端中消除多余空格
来源于《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
在输出终端中消除多余空格相关推荐
- Python问题记录:如何处理中文网页中的多余空格
在制作Epub电子书的时候,因为有从网络上下载的格式比较混乱的电子书,现在打算自己用Pythonc处理一下. 1.如何删除掉网页(html)中的多余空额.尤其是包含在tag(标签:span.p)当中的 ...
- 如果去掉数学前后的空格_excel表格数据消除前后空格-EXCEL表格中数据后面的空格怎么去掉,一条条手工删......
excel表格中,单元格的内容后面总是有一个空格,怎... 准备工具/材料:windows10电脑,excel软件. 单元格的内容后面去除空格的方法如下: 1.首先,打开需要设置的excel文件. 2 ...
- 删除字符串中各单词间多余空格
删除字符串中各单词间多余空格 编程实现删除字符串中各单词间多余空格,只保留一个空格.如果字首字符中有连续空格,应完全删除:如果非字母字符前后有空格应该将空格完全删除:如果末尾是一连续空格也应将其删除. ...
- Word如何删除中英文混排中中文间的多余空格
如何快速批量删除word中多余的空格呢,尤其是中英文混排的文档,有时会有连续的多个空格,如何去掉中文中的空格,同时保留英语单词间的空格呢.今天就和朋友们说说去掉word中空格的简单好用的方法吧! 1. ...
- 批量删除Word中回车、多余空格和空…
批量删除Word中回车.多余空格和空行的方法 一.如何批量删除Word文档中回车 有时候我们需要把内网信息传到省网和外网时,会发现将文章复制到Word文档进行编辑时,出现了带有好多向下箭头的符号这就是 ...
- 编写一个函数,从一个字符串中去除多余的空格。
这道题是<C和指针>上面的习题,出自于65页第7题,题目描述为: 编写一个函数,从一个字符串中去除多余的空格.函数的原型应该如下: void deblank( char string ...
- 《Word中批量去除多余空格、空行、换行》
当我们从pdf文件中复制文字时往往会出现有很多多余空格符.空行符.换行符号的情况: 下面记录一下在word中如何批量去除多余空格.空行.换行等符号: 1.去多余换行符:按下快捷键:Ctril+H,在查 ...
- iOS 去除字符串中的空格或多余空格(适合英文单词)
NSString -stringByTrimmingCharactersInSet: 是个你需要牢牢记住的方法.它经常会传入 NSCharacterSet +whitespaceCharacterSe ...
- C++用substr()函数消除前后空格
最近做了个题目,遇到了要将字符串前后空格消除的细节问题.在Java中好像有一个字符串函数为trim()可以消除字符串后的空格.对于c++,查了一下,可以引用一个c++标准库Boost,可以轻松解决,但 ...
最新文章
- 不小心关闭了explorer.exe进程,桌面变白解决办法
- WinRT开发语言的功能和效率
- linux mysql 8安装教程,MySQL8系列安装与配置教程(Linux环境)
- 前端开发~uni-app ·[项目-仿糗事百科] 学习笔记 ·004【App.vue引入全局公共样式】
- JavaScript--eval
- 台达cp2000的面板怎么调节_吊灯怎么安装 吊灯怎么固定在顶上的
- ajax和jquery教程pdf,jquery ajax教程pdf
- Verilog 语法小结
- 局域网网络流量监控_【网络监控与安全】主要网络流量处理技术
- 一次成功编译Bilibili安卓播放器
- 怎样在网站中添加google统计代码
- 计算机无法共享访问受限,设置组策略解决共享访问受限问题
- 必考面试题:浏览器怎么渲染页面的
- Vue3生命周期及事件写法
- 【SAP Abap】关于销售凭证VBKD业务数据表的使用与注意事项
- 15. Linux系统中的磁盘管理
- 3D打印出活体心脏,AI让你体验登月!|技术前沿洞察
- Lambda表达式秒用——SerializedLambda序列化
- 以太坊源码分析(10)CMD深入分析
- springboot yml使用
热门文章
- go test 如何输出到控制台_深度剖析 Go 中的 Go 协程 (goroutines) -- Go 的并发
- coco showanns不显示_coco奶茶加盟好不好?【5月官网最新公布】加盟费用+加盟流程...
- 信息安全工程师笔记-案例分析(二)
- Linux笔记-scp或ftp或sftp传文件后最后修改时间
- Java笔记-读取资源文件应该注意的问题(大文件解析、\r\n分割相关的)
- Java笔记-通过反射获取注解及Spring中获取某包下的所有class文件
- java的主函数在哪_打开一个别人的文件,一堆.java, 怎么知道main函数在哪里?
- python语言训练教程_PYTHON零基础快乐学习之旅(K12实战训练)
- 数据结构之树、森林、二叉树的转化
- 动态库的链接和链接选项-L,-rpath-link,-rpath