• 字符串


    字符串类型

          字符串是由字符组成的有穷序列,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不为大写字母,则不转换

  • 相关阅读:
    软件专利申请流程
    GitLab的权限管理及Merge Request
    git clone指定branch或tag
    pom.xml activatedProperties --spring.profiles.active=uat 对应
    Alpine容器中运行go的二进制文件
    在 Alpine Linux 中安装 bash shell
    mysql 大小写不敏感
    PB级数据实时查询,滴滴Elasticsearch多集群架构实践
    top命令输出解释以及load average 详解及排查思路
    你真的了解java的lambda吗?- java lambda用法与源码分析
  • 原文地址:https://www.cnblogs.com/vacation/p/5024169.html
Copyright © 2020-2023  润新知