Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
2009-04-07 12:28
471 查看
//单字符 Char、AnsiChar (在目前版本(2007)中, 它们是一回事, 只有 1 字节大小) var c: Char; {Char 类型的取值范围是: #0..#255, 用十六进制表示是: #$0..#$FF} begin {用十进制方式赋值:} c := #65; ShowMessage(c); {A} {用十六进制方式赋值:} c := #$41; ShowMessage(c); {A} {用 Chr 函数代替 # 符号} c := Chr(65); ShowMessage(c); {A} c := Chr($41); ShowMessage(c); {A} {Char 长度当然会是 1} ShowMessage(IntToStr(Length(c))); {1} {Char、AnsiChar 允许这样方便地赋值(也就是和 1 字节长度的字符串是兼容的):} c := 'B'; ShowMessage(c); {B} end; //UniCode 字符 WideChar; 和 AnsiChar 不同, WideChar 是占 2 字节大小. var c: WideChar; {WideChar 的取值范围是: #0..#65535, 用十六进制表示是: #$0..#$FFFF} begin {WideChar 兼容了 AnsiChar 的 #0..#255; 但占用了 2 字节大小} c := #65; ShowMessage(c); {A} ShowMessage(IntToStr(Length(c))); {1; 这是字符长度} ShowMessage(IntToStr(SizeOf(c))); {2; 但占用 2 个字节} {用十六进制赋值} c := #$4E07; ShowMessage(c); {万} ShowMessage(IntToStr(Length(c))); {1; 这是字符长度} ShowMessage(IntToStr(SizeOf(c))); {2; 但占用 2 个字节} {用十进制赋值} c := #19975; ShowMessage(c); {万} {如果不超出 #255 的范围是可以直接赋值的} c := 'B'; ShowMessage(c); {万} {这样不行} //c := '万'; {这是 Delphi 的支持问题, 估计 Delphi 2008 应该可以解决} {可以这样变通一下:} c := WideString('万')[1]; ShowMessage(c); {万} {用 WideChar 的方式显示我的名字} ShowMessage(#19975#19968); {万一} ShowMessage(#19975 + #19968); {万一} ShowMessage(#$4e07#$4e00); {万一} end; //字符指针 PChar、PAnsiChar; 在当前版本(2007)中它们没有区别. var p: PChar; str: string; begin {可以给 PChar 直接赋予字符串常量} p := '万一'; ShowMessage(p); {万一} ShowMessage(IntToStr(Length(p))); {4} {给变量值需要转换} str := '万一的 Delphi 博客'; p := PChar(str); {转换} ShowMessage(p); {万一的 Delphi 博客} ShowMessage(IntToStr(Length(p))); {18} end; //宽字符指针 PWideChar var p: PWideChar; str: WideString; {注意这里不是 String} begin {可以给 PWideChar 直接赋予字符串常量} p := '万一'; ShowMessage(p); {万一} ShowMessage(IntToStr(Length(p))); {2} {给变量值需要转换} str := '万一的 Delphi 博客'; p := PWideChar(str); {转换} ShowMessage(p); {万一的 Delphi 博客} ShowMessage(IntToStr(Length(p))); {13} end;唉~: 代码着色在这里又出现问题, 不过现在没心情修改了, 以后再说吧.
相关文章推荐
- Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串 - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串 - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi的字符及字符串-Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串 - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串 - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串 - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的字符及字符串 - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar
- Delphi 的内存操作函数(1): 给字符指针分配内存( 给字符指针(PChar、PWideChar、PAnsiChar)分配内存最佳的选择是StrAlloc。分配内存的时候会对字符串进行初始化)
- Delphi 的字符及字符串[6] - Char(AnsiChar)、WideChar 与其编码的相互转换
- Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar 的用法
- 给字符指针(PChar、PWideChar、PAnsiChar)分配内存, 最佳选择是: StrAlloc.
- 关于delphi的PChar, PWideChar, pAnsiChar
- Delphi的字符(Char),字符串(String),字符串指针(PChar),字符数组arrayofchar
- Delphi XE7 的类型---以后 ansichar 就是 byte AnsiChar 的数组就是 Byte 数组 PAnsiChar 就是 TBytes。 WideChar 就是 Word
- Delphi的字符(Char), 字符串(String), 字符串指针( PChar ), 字符数组 array of char