教学目的: 掌握文本编辑的基本原理及方法
教学重点: 简单文本编辑
教学难点: 串的存储管理
授课内容:
一、复习串的堆分配存储表示
堆分配存储表示
二、文本编辑基本原理
图一
文本编辑可以用于源
程序的输入和修改(如图一),也可用于报刊和书籍的编辑排版以及办公室的公文书信的起草和润色(如图二)。
图二
可用于文本编辑的程序很多,功能强弱差别很大,但基本操作是一致的:都包括串的查找,插入和删除等基本操作。
对用户来讲,一个文本(
文件)可以包括若干页,每页包括若干行,每行包括若干文字。
对文本编辑程序来讲,可把整个文本看成一个长
字符串,称文本串,页是文本串的子串,行又是页的子串。为简化程序复杂程度,可简单地把文本分成若干行。
例:下面的一段源程序可以看成一个文本串,
main(){
float a,b,max;
scanf("%f,%f",&a,&b);
if (a>b) max=a;
else max=b;
};
|
这个文本串在
内存中的存储映像可为:
| m | a | i | n | ( | ) | { | \n | | | f | l | o | a | t | | a | , | b | , |
| m | a | x | ; | \n | | | s | c | a | n | f | ( | " | % | f | , | % | f | " |
| , | & | a | , | & | b | ) | ; | \n | | | i | f | | a | > | b | | | m |
| a | x | = | a | ; | \n | | | e | l | s | e | | | m | a | x | = | b | ; |
| \n | } | \n | | | | | | | | | | | | | | | | | |
在编辑时,为指示当前编辑位置,程序中要设立页
指针、行
指针、字符
指针,分别指示当前页,当前行,当前字符。因此程序中要设立页表、行表便于查找。