2011年4月26日
摘要: 源自《The C Programming Language》P25 pr1-22: 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格符之后。 要保证程序能够智能地处理输入行很长以及在指定的列前没有空格或是制表符的情况。 参考代码:main.c 1 #include <stdio.h> 2 3 #define MAXCOL 10 //输入行的折行位置,即输入行的第n列 4 //程序将在输入行的每一处第n列之前对该输入行折行 5 #define TABINC 8 //'\t'等价8个空格 6 7 char line[ 阅读全文
posted @ 2011-04-26 05:04 将军之盾 阅读(617) 评论(1) 推荐(0) 编辑
  2011年4月22日
摘要: 源自《The C Programming Language》P25 pr1-20: 编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方。假设 制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。n应该是变量还是常量呢? 参考代码:main.c 1 #include <stdio.h> 2 3 #define TABINC 8 //定义每个TABINC(8)个位置会出现一个制表位 4 5 int main() 6 { 7 int c, nb, pos; 8 9 nb = 0; //到遇到制表符时,到达下个制表位需要的空格数10 阅读全文
posted @ 2011-04-22 18:19 将军之盾 阅读(1013) 评论(1) 推荐(0) 编辑
  2011年4月21日
摘要: 源自《The C Programming Language》P22 pr1-18: 编写一个程序,删除每个输入行末尾的空格,制表符,并删除完全是空格的行 代码: main.c 1 #include <stdio.h> 2 3 #define MAXLINE 10 4 5 int getLine(char s[], int lim); 6 void copy(char to[], char from[]); 7 int calcLen(char s[]); 8 9 int main()10 {11 12 int len, index, row;13 char line[MAXLINE 阅读全文
posted @ 2011-04-21 04:35 将军之盾 阅读(1402) 评论(0) 推荐(0) 编辑
  2011年4月20日
摘要: 源自《The C Programming Language》P20 ex1.9: 从终端读入一组文本行,并将最长的文本行打印出来 代码: main.c 1 #include <stdio.h> 2 3 #define MAXLINE 1000 //允许输入行的最大长度 4 #define LIM 8 5 6 int getline(char line[], int maxline); 7 void copy(char to[], char from[]); 8 9 int main()10 {11 12 int i, j;13 int len; //当前行长度14 int maxn 阅读全文
posted @ 2011-04-20 05:17 将军之盾 阅读(442) 评论(0) 推荐(0) 编辑
  2011年4月18日
摘要: boot/包含三个汇编文件:bootsect.s,setup.s,head.s。bootsect.s程序是磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中(引导扇区,0磁道,0磁头,第一个扇区),在PC加电ROM-BIOS自检后,将被BIOS加载到内存0X7C00处执行。setup.s程序主要用于读取机器的硬件配置参数,把内核模块system移动到适当的内存位置处。head.s程序会被编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始化设置。 BIOS: PC上电后,执行ROM-BIOS中0XFFFF0处代码,将编译后的bootsect模块加载到0X7C00. 阅读全文
posted @ 2011-04-18 19:44 将军之盾 阅读(386) 评论(0) 推荐(0) 编辑