the c programing language 1-22 较长输入行折成短些的多行,非缓冲方式实现
来源:互联网 发布:徐州网络推广 编辑:程序博客网 时间:2024/05/17 23:53
/* * K&R2 1-22 * Author: Donmmi * 程序说明: 代码核心部分:折行后的当前行长度为未输出的空白字符数(len = nspace),再根据折行位置进行处理*/#include <stdio.h>#define NLINE 4#define NTAB 2int main(void) { int i, c; int len, nspace; len = nspace = 0; while ((c = getchar()) != EOF) { /* 非空格和非换行符 */ if (c != ' ' && c != '\t') { ++len; while (nspace) { /* 遇到非空白字符,首先输出空白符,空格数目保存在nspace中 */ putchar(' '); --nspace; } putchar(c); if (len == NLINE) { if (c != '\n') /* 如果在需要折行的位置字符为换行符,则不输出换行符 */ putchar('\n'); len = 0; } if (c == '\n') len = 0; } else { /* 空格或tab */ if (c == ' ') { ++len; ++nspace; } else if (c == '\t') { len += NTAB; nspace += NTAB; } /* 由于tab的原因,len可能会大于NLINE,处理多余的空白行输出 */ if (len >= NLINE) { /* 需要折行 */ if (len > nspace) /* 如果len>nspace先输出一个换行符 */ putchar('\n'); if (nspace / NLINE > 0) for (i = 1; i <= nspace / NLINE * NLINE; ++i) { /* 输出一整行空格 */ putchar(' '); if (i % NLINE == 0) putchar('\n'); } nspace -= nspace / NLINE * NLINE; /* 减去输出的空白符 */ len = nspace; } } } return 0;}
0 0
- the c programing language 1-22 较长输入行折成短些的多行,非缓冲方式实现
- 较长输入行折成多行
- 自己搞,带注释,适合初学者:C程序设计语言练习1-22 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后
- 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个元素。
- 将较长的输入行折成短一些的两行或多行
- 把较长的输入行“折”成短一些的两行或多行
- the c programing language 练习1-17
- 编写一个程序,把较长的输入行“折”成短一些的多行,折行的位置在输入行的第N列之前的最后一个非空格之后
- The C programing language 第一章
- 练习1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个空格之后
- 重读The C Programing Language的一些小纠结。
- the c programing language 1-23 删除注释
- The C programing language K&R 笔记
- The C programing language chapter 6 : struct
- the c programing language 练习1-21 将空格字符替换为最少数量的制表符和空格
- Day 1 :start C Language Programing course
- OIS 缓冲与非缓冲输入方式
- The C programing language 第二章课后题
- 用冒泡法对任意十个数字按由小到大的顺序排序
- 项目中,jsp,css,images,js该放在哪个文件里面?
- MFC 如何改变对话框的默认背景颜色
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- cocos2d一些注意事项及vector删除对象的方法
- the c programing language 1-22 较长输入行折成短些的多行,非缓冲方式实现
- 《大话设计模式》——工厂模式的逐步升级
- java调色板(用滑块调色)
- USACO3.3.3 Camelot (camelot)
- The JRE could not be found. Edit the server and change the JRE location.
- VS2010 更改MFC标题栏图标和生成的执行文件图标
- 前端进阶学习(三) --css框架初探
- [Leetcode]Permutations
- HTTP消息头中的“Cache-control”控制网页的缓存