字符串
 
   〖语法分析〗

    字符串用于存放整批的字符数据。通常编程中使用字符串存放字符化了的数字数据。如高精度运算时存放操作数和运算结果。字符串可以看作是特殊的字符串数组来处理。当然,它也有自已的特点。下面是字符串定义的格式:
var
s:string; s1:string[15];
字符串定义时,如不指定长度,则按该类型的最大长度(255个字符)分配空间,使用时最大可用长度为255个;如果在中括号中给出一个具体的值(1—255之间),则按这个值的大小分配空间。使用时,最大的可用长度即为该值。

     1、字符串的输入、输出:
字符串类型既可按数组方式输入、输出,也可直接输入、输出:readln(s);writeln(s);多个字符串输入时以回车作为数据间的分隔符;每个readln语句只能读入一个字符串。

  2、有关字符串的操作:

操作
类型
作用
返回值
例子
length(s)
函数
求字符串s的长度 整型 s:='123456789';
l:=length(s);{l的值为9}
copy(s,w,k)
函数
复制s中从w开始的k位 字符串 s:='123456789';
s1:=copy(s,3,5);{s1的值是'34567'}
val(s,k,code)
过程
将字符串s转为数值,存在k中;code是错误代码  

var s:string;k,code:integer;
begin
s:='1234';
val(s,k,code);
write(k);{k=1234}

str(i,s)
过程
将数值i转为字符串s   i:=1234;
str(i,s);
write(s);{s='1234'}
Delete(s,w,k)
过程
在s中删除从第w位开始的k个字符   s := 'Honest Abe Lincoln';
Delete(s,8,4);
Writeln(s); { 'Honest Lincoln' }
Insert(s1, S, w)
过程
将s1插到s中第w位   S := 'Honest Lincoln';
Insert('Abe ', S, 8); { 'Honest Abe Lincoln' }
Pos(c, S)
函数
求字符c在s中的位置 整型 S := ' 123.5';
i :=Pos(' ', S);{i的值为1}
+
运算符
将两个字符串连接起来   s1:='1234';
s2:='5678';
s:=s1+s2;{'12345678'}

   练习题:
1、做一个加法器。完成30000以内的加法,两个加数间用“+”连接,可以连加,回车表示式子输入完成;“#”表示结束运算,退出加法器。
2、做一个编译器,解释pascal的循环语句。