![](http://www.bc-cn.net/Article/UploadFDL01/200411/20041112071816614.jpg)
图一 |
文本编辑可以用于源程序的输入和修改(如图一),也可用于报刊和书籍的编辑排版以及办公室的公文书信的起草和润色(如图二)。
![](http://www.bc-cn.net/Article/UploadFDL01/200411/20041112071818347.jpg)
图二 |
可用于文本编辑的程序很多,功能强弱差别很大,但基本操作是一致的:都包括串的查找,插入和删除等基本操作。
对用户来讲,一个文本(文件)可以包括若干页,每页包括若干行,每行包括若干文字。
对文本编辑程序来讲,可把整个文本看成一个长字符串,称文本串,页是文本串的子串,行又是页的子串。为简化程序复杂程度,可简单地把文本分成若干行。
例:下面的一段源程序可以看成一个文本串,
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在编辑时,为指示当前编辑位置,程序中要设立页指针、行指针、字符指针,分别指示当前页,当前行,当前字符。因此程序中要设立页表、行表便于查找。