大家對有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是
指向在堆棧中的字符串結構的指針