字符串

字符串类型

      字符串是由字符组成的有穷序列,pascal提供string和ansistring二种字符串类型,二者只是在字符串的长度上有区别,string类型长度在255以内,超出255长度的部分被忽略,而ansistring类型没有长度限制(其实可存储2G的内容,所以看作长度无限制)。

      字符串类型定义:

           

 var 
    字符串变量: string[n];
  • 其中:n是定义的字符串长度,必须是0~255之间的自然整数,第0号单元中存放串的实际长度,程序运行时由系统自动提供,第1~n号单元中存放串的字符。若将string[n]写成string,则默认n值为255。

字符串的操作

由字符串的常量、变量和运算符组成的表达式称为字符串表达式。

字符串运算符包括:

1.+:连接运算符

          例如:‘Free ’+‘PASCAL’的结果是‘Free  PASCAL’。

           若连接的结果字符串长度超过255,则被截成255个字符。若连接后

     的字符串存放在定义的字符串变量中,当其长度超过定义的字符串长度  

     时,超过部份字符串被截断。

          例如:var   str1,str2,str3:string[8];     

                    begin

                      str1:=‘Free’;     

                      str2:=‘PASCAL’;

                      str3:=str1+str2;

                  end.

         则str3的值为:‘FreePASC’。

2.=、〈〉、〈、〈=、〉、〉=:关系运算符

            两个字符串的比较规则为,从左到右按照ASCⅡ码值逐个比较,遇

      到ASCⅡ码不等时,规定ASCⅡ码值大的字符所在的字符串为大。

              例如:‘AB’〈‘AC’ 结果为真;

                       ‘12’〈‘2’    结果为真;

                       ‘PASCAL ’=‘pascal’  结果为假;

字符串的函数和过程

Free Pascal提供了八个标准函数和标准过程,见下表,利用这些标准函数与标准过程,一些涉及到字符串的问题可以灵活解决。

类型

函数和过程名

功      能

说      明

函数

copy(s,m,n)

取s中第m个字符开始的n个字符

若m大于s的长度,则返回空串;否则,若m+n大于s的长度,则截断

函数

length(s)

求s的动态的长度

返回值为整数

函数

pos(sub,s)

在s中找子串sub

返回值为sub在s中的位置,为byte型

过程

insert(sour,s,m)

在s的第m个字符位置处插入子串sour

若返回串超过255,则截断

过程

delete(s,m,n)

删除s中第m个字符开始的n个字符串

若m大于s的长度,则不删除;否则,若m+n大于s的长度,则删除到结尾

过程

str(x[:w[:d]],s)

将整数或实数x转换成字符串s

w和d是整型表达式,意义同带字宽的write语句

过程

val(s,x,code)

将字符串S 转换成整数或实数x

若S中有非法字符,则code存放非法字符在S中的下标;否则,code为零。code为整型

函数

upcase(ch)

将字母或字串ch转换成大写字母

若ch不为小写字母,则不转换

函数

lowercase(ch)

将字母或字串ch转换成小写字母

若ch不为大写字母,则不转换

posted @ 2015-12-06 19:35  ZJQCation  阅读(258)  评论(0编辑  收藏  举报