练习 1-22 自动折行程序
2012-11-12 21:40
120 查看
/************************************************************************** 类型:<c程序设计语言(第二版.新版)> 练习 1-22 名称:lx.c author: wubenzhimu data: 2012.11 功能:编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的 位置在输入行的第n列之前的最后一个非空格之后。要保证程序能够智能地处理 输入行很长以及在指定的列前边没有空格或制表符时的情况。 ***************************************************************************/ #include <stdio.h> #define MAXLINE 1000 #define TRUELENGTH 10 /* 超过这个长度折行 */ int getLine ( char charArr[] ); void copy ( char charArr[], char toArr[], int length ); int main () { int putLength = 0; /* 输入数组的长度 */ char charArr[MAXLINE] = { 0 }; char toArr[MAXLINE] = { 0 }; putLength = getLine ( charArr ); if ( putLength > 0 ) { copy ( charArr, toArr, putLength ); } printf("%s", toArr); return 0; } /* 把输入的字符串保存到数组中 */ int getLine ( char charArr[] ) { int c, i = 0; while ( (c=getchar()) != EOF ) { charArr[i] = c; i++; } charArr[i] = '\n'; charArr[++i] = '\0'; return i; } /* 复制指定长度的数组并符合添加的加'\n' */ void copy ( char charArr[], char toArr[], int length ) { int i = 0, j = 0, t = 0; while ( i <= length ) { if ( t == TRUELENGTH ) { while ( charArr[i]=='\b' || charArr[i]==' ' ) { i++; } toArr[j] = '\n'; t = 0; } else { if ( t == 1) { while ( charArr[i]=='\b' || charArr[i]==' ' ) { i++; } } toArr[j] = charArr[i]; } i++; j++; t++; } }
输出结果:
![](http://pic002.cnblogs.com/images/2012/462468/2012111221361173.png)
相关文章推荐
- 练习1-22 编写一个程序,把较长的输入行折成短一些的两行或者多行,折行的位置在输入行的第N列之前的最后一个非空格之后。要保持程序能够智能地处理输入行很长以及在制定的列前没有空格或者制表符时的情况。
- 20() 21() 22()程序练习。暂未写
- 自己搞,带注释,适合初学者:C程序设计语言练习1-22 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后
- matlab练习程序(图像自动聚焦)
- 求一个能够 自动生成小学生数学练习题目 的Java程序。
- 3月10号周二课堂练习:关于自动生成四则运算题目的程序的延伸
- 22.让系统自动关闭停止响应的程序:
- asp.net小程序练习--自动生成指定的文本框数
- js简单小程序练习-排行榜文字向上滚动
- Android程序跳过登录界面直接进入主界面(自动登录)
- VC里基于对话框的程序屏蔽回车键自动退出程序
- Ubuntu Linux系统下自动启动程序的设置
- Java程序练习-均分纸牌
- 前置自动升级程序
- Java程序练习-乱头发节
- python练习程序(c100经典例8)
- 程序自动分析NOI2015
- 手机上程序打开一闪,自动关闭
- Java程序练习-Spell checker