大家对有object pascal的字符串可能您经常用AnsiString其他的字符串一般很少用到。
下面举几个字符串的几个类型:
AnsiSring 这是Pascal的默认类型。其长度没有限制的。并且字符串结束是以null结尾。也就是以'/0'结尾。
ShortSring是为了与Delphi以前的版本保持兼容性。其长度限制在255个字符之内的。
WideSring与AnsiString类似,但它是由WideChar字符组成的。
PChar指向null结束的字符串的指针。类似于c里面的char*或者lpstr.
PAnsiChar指向以null结束的AnisChar结束的字符串指针。
PWideChar指向以null结束的WideChar的字符串的指针。
缺省情况下是AnisSring的类型:
var
S:String;
也可以有编译器开关$H来将String类型定义为ShortString类型:例子
var
{$H-}
s1:=string;//s1是shortstring类型
{$H+}
s2:=string;//s2是sring类型
但是当特定指定的字符串的长度,长度要小于255的时候,其用{$H}的时候总是AnsiSring
例子:
var
s:string[254];
下面我要讲讲这些类型的各自用法:
1、AnisSring类型
它是动态分配的并且有自动回收功能。这个功能被称为生存期自管理功能。不用象c中的中间结果
由于AnisSring类型的字符串以null结尾的,因此可以与Win32Api兼容。实际上AnisSring是
指向在堆栈中的字符串结构的指针。