在输出终端中消除多余空格
来源:互联网 发布:dijkstra java 编辑:程序博客网 时间:2024/06/04 17:45
来源于《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语句的使用上,没有参考代码中的简洁和高效
- 在输出终端中消除多余空格
- 消除字符串中多余的空格
- C++ 字符串 处理 消除多余空格
- 笔试题---消除多余的空格
- 项目36.3消除多余的空格
- 消除字符串中空格
- 字符串中去掉多余空格
- 第36课时,实践2,消除多余的空格
- 第36讲-项目三-消除多余的空格
- 第三十六讲项目三 消除多余的空格
- 避免输出多余空格的小技巧
- 消除iOS中多余的警告
- 消除字符串开始和结束处的空格,并合并中间多余的空格
- 删除字符串中多余的空格 shrink_space
- 删除字符串中多余的空格
- 删除字符串中多余的空格
- 删除字符串中多余的空格
- 移除字符串中多余的空格
- java 动态代理
- 娶老婆忘了娘,咱们做挨踢的人可不能这样
- 杭电2011年计算机复试题
- 快速搭建Struts1.x开发环境详细步骤与讲解
- JS基本验证
- 在输出终端中消除多余空格
- JS + Xml + Excel 做报表(客户端生成)
- ExtJs_GridWithProgressBarPager
- 在线客服 浮动
- 自动投票系统【五】其他技术
- 教你编写自己的BAT批处理文档
- Windows Shell扩展系列文章 1 - .NET 4 编写Windows Shell上下文菜单扩展
- 使用DataAdapter.Update的简单方法~~~
- mysql中中字符串截取函数