练习 1-21 将空格串替换为最少数量的制表符和空格
2012-11-09 22:32
316 查看
/******************************************************************** 类型:<c程序设计语言(第二版.新版)> 练习 1-21 名称:lx.c author: wubenzhimu data: 2012.11 功能:编写程序entab,将空格串替换为最少数量的制表符和空格, 但要保证单词之间的间隔不变。假设制表符终止位的位置与练习 1-20的detab程序的情况相同。当使用一个制表符或者一个空格都 可以到达下一个制表符终止位时,选用哪一种替换字符比较好。 *********************************************************************/ /* 思路: 先判断输入的字符类型 如果是空格 就++运算 统计空格的数量 如果是换行,就把所有的统计数据清空 否则就进行替换运算,先根据制表符的公式求出第一个制表符需要的空格数, 如果空格总是大于制表符的位数,就循环减去制表符的位数, 如果空格小于制表符的位数,就循环输出空格 */ #include <stdio.h> #define DETAB 8 /* 制表符默认位数 */ int main () { int c; int nbspLength = 0; /* 空格的长度 */ int charLength = 0; /* 字符串的长度 */ int tabLength = 0; /* 如果出现字符少于8位制表符的位数 */ while ( (c=getchar()) != EOF ) { if ( c == ' ' ) { nbspLength++; } else if ( c == '\n' ) { nbspLength = 0; charLength = 0; } else if(nbspLength>0) { tabLength = (DETAB-charLength)%DETAB; if(tabLength>0& Length>=tabLength) { putchar ( '\t' ); nbspLength = nbspLength-tabLength; } if(nbspLength>DETAB) { while(nbspLength>DETAB) { putchar ( '\t' ); nbspLength = nbspLength-DETAB; } charLength=nbspLength; while(nbspLength>0) { putchar ( ' ' ); nbspLength--; } } else { charLength=nbspLength; while(nbspLength>0){ putchar ( ' ' ); nbspLength--; } } } putchar ( c ); charLength++; nbspLength = 0; } return 0; }
多亏朋友给了点指点,不然我自己还绕呢。。。
charLength=nbspLength; 朋友写的点睛之笔!!
结果:
相关文章推荐
- 练习1-21:编写程序entab,将空格串替换为最少数量的制表符和空格。。。(C程序设计语言 第2版)
- 练习1-21 编写程序entab,将空格串替换成最少数量的制表符和空格,但要保持单词之间的间隔不变。假设制表符终止位的位置与练习1-20的detab程序的情况相同。当使用一个制表符或者一个空格都可以到达下一个制表符终止位时,选用哪种替换字符比较好。
- the c programing language 练习1-21 将空格字符替换为最少数量的制表符和空格
- 空格串替换为最少数量的制表符和空格
- 将输入的空格串替换为最少数量的制表符和空格。
- 第7周 C语言程序设计(新2版) 练习1-21 空格串替换为最小数目的空格和制表符
- 练习1-20:请编写程序detab,将输入中的制表符替换成适当数目的空格,适空格充满到下一个制表符中止的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。n应该作为变量还是符号常量呢?
- 练习 1-20 编写程序 detab,将输入中的制表符替换成适当数目的空格,使空格充满到 下一个制表符终止位的地方。
- 练习1-18 编写一个程序,删除每个输入行末尾的空格以及制表符,并删除完全是空格的行
- 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方
- 练习 1- 10 编写一个将输入复制到输出的程序,并将其中的制表符替换成 \t,把回退符替换成\b,把反斜杠替换为\\。 这样就可以将制表符和退格符以可见的方式显示出来。
- 第7周 C语言程序设计(新2版) 练习1-20 制表符换成适当数目空格
- java替换换行符、制表符、空格等
- 算法练习:将字符串中所有的空格替换为'%20'(只用基本数据结构)
- vim制表符空格替换配置及注意事项
- 字符串练习(1.统计字符串中字串的数量2.字符串逆序3.字符串替换)
- 替换字符串空格、tab制表符
- 字符串练习21_单词替换
- 书后练习--统计空格,制表符,换行符个数
- 17.09.24 牛客网练习总结:二维数组中的查找,替换空格