将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方
2011-04-22 10:19
441 查看
源自《The C Programming Language》P25 pr1-20:
编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方。假设
制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。n应该是变量还是常量呢?
参考代码:
分析:
1, 理解题意:本题的目的是将输入的'/t'换成适当数目的空格输出。比如,输入:
ab/tcde/tas
pos:123456789,(pos为输入字符的位置,a--第一个输入的字符,c--第四个输入的字符)
输出:ab cde as,(b与c之间是6个空格,e与a之间是5个空格)
注:其实在终端输入的字符串和输出的样式是一样的,这里写成ab/tcde/tas,主要是为了直观
上好看,在终端输入时是不会出现上述字符串中的/t,因为这类转义字符时不可见,编译器
默认地用若干个空格代替/t。
2, TABINC:每隔8个位置就会出现一个制表位,pos为程序在文本行中的当前位置,nb为当遇到制表符时,
程序计算出要到达下一个制表位所需要的空格数
3, 将读入字符分成三类:'/t','/n',其他。分别进行处理。
编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方。假设
制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。n应该是变量还是常量呢?
参考代码:
#include <stdio.h> #define TABINC 8 //定义每个TABINC(8)个位置会出现一个制表位 int main() { int c, nb, pos; nb = 0; //到遇到制表符时,到达下个制表位需要的空格数 pos = 1; //程序在文本行的当前位置 while((c = getchar()) != EOF) { if(c == '/t') { nb = TABINC - (pos - 1)%TABINC; while(nb > 0) { putchar(' '); ++pos; --nb; } } else if(c == '/n') { putchar(c); pos = 1; } else { putchar(c); ++pos; } } return 0; }
分析:
1, 理解题意:本题的目的是将输入的'/t'换成适当数目的空格输出。比如,输入:
ab/tcde/tas
pos:123456789,(pos为输入字符的位置,a--第一个输入的字符,c--第四个输入的字符)
输出:ab cde as,(b与c之间是6个空格,e与a之间是5个空格)
注:其实在终端输入的字符串和输出的样式是一样的,这里写成ab/tcde/tas,主要是为了直观
上好看,在终端输入时是不会出现上述字符串中的/t,因为这类转义字符时不可见,编译器
默认地用若干个空格代替/t。
2, TABINC:每隔8个位置就会出现一个制表位,pos为程序在文本行中的当前位置,nb为当遇到制表符时,
程序计算出要到达下一个制表位所需要的空格数
3, 将读入字符分成三类:'/t','/n',其他。分别进行处理。
相关文章推荐
- 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方
- 练习1-20:请编写程序detab,将输入中的制表符替换成适当数目的空格,适空格充满到下一个制表符中止的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。n应该作为变量还是符号常量呢?
- 练习 1-20 编写程序 detab,将输入中的制表符替换成适当数目的空格,使空格充满到 下一个制表符终止位的地方。
- 将输入的制表符替换成适当数目的空格,使空格充满到下一个制表符终止的地方。
- 编些程序detaba,将输入中的制表符替换为适当数目的空格,使空格充满到下一个制表符终止位的地方
- 将输入的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方
- 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方
- 练习1-21 编写程序entab,将空格串替换成最少数量的制表符和空格,但要保持单词之间的间隔不变。假设制表符终止位的位置与练习1-20的detab程序的情况相同。当使用一个制表符或者一个空格都可以到达下一个制表符终止位时,选用哪种替换字符比较好。
- 编写程序detab,将输入中的制表符换成适当数目的空格
- 第7周 C语言程序设计(新2版) 练习1-20 制表符换成适当数目空格
- 第7周 C语言程序设计(新2版) 练习1-21 空格串替换为最小数目的空格和制表符
- 将输入的空格串替换为最少数量的制表符和空格。
- 001_015 Python 扩展和压缩制表符即将制表符替换为一定数目的空格或者相反
- 从键盘输入一个英文句子,并处理:去掉最左边和最右边的空白(空格、制表符),把连续的空白替换为一个空格。
- 练习1-21:编写程序entab,将空格串替换为最少数量的制表符和空格。。。(C程序设计语言 第2版)
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- C圣经---删除输入行末尾的空格以及制表符,并删除完全是空格的行
- 替换字符串空格、tab制表符
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 删除每个输入行末尾的空格,制表符,并删除全空格行