专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Delphi教程 » delphi数组:DELPHI字符数组 »正文

delphi数组:DELPHI字符数组

来源: 发布时间:星期三, 2008年9月24日 浏览:127次 评论:0
当数组元素均为字符型时,称这个数组是字符型数组。
(1)字符数组的类型定义格式
type<字符数组名>=array[下标类型]of char;
例如,type chr=array E 0..9]of char;就定义了一个可存放1 0个字符的一维数组类型chr。
(2)字符数组的变量定义及使用
与数组类型变量定义和使用一样,但是它更适合将字符数组作为字符串处理的情形。
书后所附光盘中E:\delphi\program\exampl比一24,演示了字符数组的使用,输入字符并用字符串输出函数writeln输出到屏幕。
2.字符串类型 .
计算机编程中,对字符串的处理占了相当大的比重。Pascal语言提供了字符串类型。使用这种类型的优点是:变量内字符的个数不固定,可上、下浮动,比较灵活。而一般数组元素的个数是固定不变的。此外,它们在内存中的存储方式也不相同。
(1)字符串类型变量的定义
字符串类型的数值是一串字符,在Delphi中支持3种类型的字符串:短字符串(Short—String)、长字符串(ANSIString)和宽字符串(WideString)。其中使用最多的是ANSIString类型,ShortString类型主要是与以前的版本兼容,WideString主要用于表达多字节字符组成的字符串,
以便处理像’Unicode之类的字符串。
定义字符串类型变量的语法格式为:
var<变量标识符>:String[长度];
程序中一般是用String,默认时相关的编译指令为{$H+},这时String表示的是.ANSIString类型,当编译指令为{$H一}时,String表示的是ShortString类型。短字符串所占据的字节数是它的最大长度加1。长字符串是动态分配的字符串,长度只受内存大小的限制。
例如:
var s:Strind 1 O];
(2)字符串变量的操作
对字符串的操作,既可以像数组一样访问每个元素,如s[1]表示字符串的第1个字符,也可对字符串进行整体操作,用单引号括起,例如S =’China’;
字符串的实际长度可在O到定义的长度之间动态变化。长度为O的字符串称为空字符串。字符串的实际长度放在字符数组下标为O的位置。
(3)字符串类型的运算
字符串类型能够进行比较运算和连接运算。字符串的连接运算使用“+”,作用是将两个字符串连接起来。例如:
s:=’China’+’Nanjing’; //s的结果是’ChinaNanjing’。
Pascal语言的字符串比较运算中可以使用运算符“<、<=、=、>=、>、<>”。关系运算符的优先级低于连接运算符的优先级。
字符串的比较是先比较两个字符串的第一个字符,如果不同,则以该字符比较结果为字符串的比较结果;如果相同,继续比较第二个字符。依此类推,如果前几个字符都相同则长度短的字符串小,例如:
’AB C’<’.ABCXY’o
注意:在字符串比较中,只有当两个字符串长度相等且对应字符完全一致时,这两个字符串才被认为是相等的。[Page]
(4)字符串操作的过程和函数
procedure insert(Source:String;var s:String;Index:Integer);
本过程把字符串Source插入到字符串s的Index位置上。如果插入的结果大于s的最大长度,则多出的字符将被截掉。例如,st:=’Brain’,则Insert(’OK’,st,2)将使“st”变为“BrOKain\"。
’procedure delete(var s:String;Index,count:Integer);
该过程从s串中的Index位置开始删去count个字符的子字符串。例如,st::’Brain’,则Delete(st,3,2)将使st变为’Brn’。
procedure str(x[:Width[:Decimals]];var s);
该过程将数值x(整型或实型)转换成字符串存放在s中,‘Width是指定宽度的整数,Decimals用来指定小数位数。例如,a:=2.5 E4;则str(a:1 0:4,st)将st的值转换为’25000.0000’。
procedure val(s;var v;var code:Integer);
该过程将字符串表达式s转换成对应的整型或实型数值,并存放在v中。s必须是一个表示数值的字符串,并形式上符合数值常数的特征。在转换过程中,如果没有检测出错误,变量code置为O,否则置为第一个出错字符的位置。例如,st:=25.4 E3,x是一个实型变量,则val(st,x,
code)将使x值为25400,code值为0。
function copy(S;Index,count:Integer):String;
该函数返回s串中一个从位置Index开始的count个字符的子串。如果Index大于s字符串的长度,那么返回一个空串。倒如,st:=’Brain’,则copy(st,2,2)返回’ra’。
function concat(sl[,s2,…,sn]:String):String;
该函数把所有变量表示出的字符串按所给出的顺序连接起来,并返回连接后的值。如果结果字符串的长度大于255(ShortString类型),将产生运行错误。
function length(S):Integer;
该函数返回字符串表达式s的长度。
function pos(substr:String;S:String):Integer;
该函数返回字符串substr在目标字符串s中的第一次出现的位置。如果substr没有匹配的
串,pos函数的返回值为O。
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: