练习1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个空格之后
来源:互联网 发布:checking php support 编辑:程序博客网 时间:2024/05/21 06:41
MAXCOL=10,pos取值:
012345678901234567890123456789
main中else if(++pos>=MAXCOL)既赋值又判断。折行的位置在输入行的第n列之前的最后一个空格之后,若无空格则输出MAXCOL个字符。
#include <stdio.h>#define MAXCOL 10#define TABINC 8char line[MAXCOL];int exptab(int pos);int findblnk(int pos);int newpos(int pos);void printl(int pos);main(){ int c,pos; pos=0; while((c=getchar())!=EOF){ line[pos]=c; if(c=='\t') pos=exptab(pos); else if(c=='\n'){ printl(pos); pos=0; } else if(++pos>=MAXCOL){ pos=findblnk(pos); printl(pos); pos=newpos(pos); } }}/* 输出空格及其前字符 */void printl(int pos){ int i; for(i=0;i<pos;++i) putchar(line[i]); if(pos>0) putchar('\n');}/* 将制表符替换为空格 */int exptab(int pos){ line[pos]=' '; /* 8字符后制表符的特殊情形 */ for(++pos;(pos<MAXCOL) && (pos%TABINC!=0);++pos) line[pos]=' '; if(pos<MAXCOL) return pos; /* 剩余8、9继续读取字符 */ else{ printl(pos); return 0; }}/* 确定输出位置 */int findblnk(int pos){ while(pos>0 && line[pos]!=' ') --pos; if(pos==0) return MAXCOL; else return pos+1; /* 从后往前第一个空格后1字符位置 */}int newpos(int pos){ int i,j; if(pos<=0 || pos>=MAXCOL) return 0; else{ i=0; for(j=pos;j<MAXCOL;++j){ /* j自从后往前第一个空格后1字符位置开始 */ line[i]=line[j]; ++i; } return i; }}
1 0
- 练习1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个空格之后
- 编写一个程序,把较长的输入行“折”成短一些的多行,折行的位置在输入行的第N列之前的最后一个非空格之后
- 自己搞,带注释,适合初学者:C程序设计语言练习1-22 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后
- 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个元素。
- 把较长的输入行“折”成短一些的两行或多行
- 练习1-18 编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行
- the c programing language 1-22 较长输入行折成短些的多行,非缓冲方式实现
- 将较长的输入行折成短一些的两行或多行
- 练习5-13 编写程序tail,将其输入中的最后n行打印出来。默认情况下,n的值为10,但可以通过一个可选参数改变n的值
- 练习1-17 编写一个程序,打印长度大于80个字符的所有输入行。
- 编写一个程序,删除每个输入行的空格及制表符,并删除完全是空格的行
- exercise1-18 编写一个程序,删除每个输入行末尾的空格及制表符,删除完全是空格的行
- 编写一个程序,删除每个输入行末尾的换行符和制表符,并删除完全是空格或制表符的行<The C Programming Language>课后习题
- 编写程序输入一个n*n的矩阵,求出两条对角线元素值之和(注意把输入的元素写入二维数组的方式)
- 练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
- 练习 1-9 编写一个将输入复制到输出的程序, 并将其连续的多个空格用一个空格代替
- 练习1-9 编写一个将输入复制到输出的程序,并将其中多个连续的空格用一个空格代替。
- 编写程序输入一个n*n的矩阵,求出两条对角线元素值之和
- 《剑指offer》-最小的K个数
- 寻址方式
- hdoj2571【DP基础】
- Unity让调试更加简单(一)
- [MySQL学习笔记]case when then else end用法
- 练习1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个空格之后
- android studio构建项目一直卡在gradle build running界面
- char字符与wchar_t字符的相互转换,以及wchar_t字符串的常用用法
- 古典小说网 首创卡拉OK式阅读新体验
- SAP本地化-银企直连
- solver.prototxt参数说明(三)
- hdu_2955_Robberies(01背包)
- 用Workbench迁移MySQL小数据库
- 定制bootstrap的按钮btn-primary