[转载] Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar

//单字符 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

时间: 2024-08-28 01:41:41

[转载] Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar的相关文章

Delphi 的字符及字符串 string、AnsiString、WideString、String[n]、ShortString

//最常用的 string var   str: string;  {定义} begin   str := '万一'; {赋值}   ShowMessage(IntToStr(Length(str))); {长度是: 4} end; //长字符串 AnsiString; 在当前版本(2007)中的默认状态下, String 就是 AnsiString var   str: AnsiString; begin   str := '万一';   ShowMessage(IntToStr(Length

字符与字符串3——char 的大小

字符变量占用内存的大小,也就是char类型声明的变量,这个变量占多少字节. 一字节 char c = 'A'; printf("%d,%d\n", sizeof(c),sizeof(char));//sizeof中既可以用变量名也可以用变量类型 sizeof()是得到一个东西的大小,大小是没有负数的.所以最好用%u (无符号整数) 结果是 1,1. 表示的范围: 有符号:-128~127 无符号:0~255 一共256个数. 看一下asc2码表中的编号是0~127,一共128个字符.

Delphi中怎样将字符串按给定字符分隔(类似split函数的功能)

Delphi中怎样将字符串按给定字符分隔(类似split函数的功能) 分类:            Delphi2007-05-16 11:094911人阅读评论(2)收藏举报 delphiintegerstringbutton文本编辑function 今天偶尔要做的Delphi程序,其中涉及到了字符串处理,里面有一个功能类似于VB里的split()函数的功能,于是查了很久才查到些资料,现将这些资料整理一下,方便大家. 首先是一个网友自己编的函数.实现了和split()函数的功能. unit U

Delphi 的内存操作函数(1): 给字符指针分配内存( 给字符指针(PChar、PWideChar、PAnsiChar)分配内存最佳的选择是StrAlloc。分配内存的时候会对字符串进行初始化)

马上能想到的函数有: GetMem AllocMem ReallocMem FreeMem GetMemory ReallocMemory FreeMemory New Dispose NewStr DisposeStr StrNew StrAlloc StrDispose GlobalAllocPtr GlobalFreePtr WideStrAlloc AnsiStrAlloc StrDispose Move MoveMemory CopyMemory ZeroMemory FillMemo

Delphi与字符编码(实战篇)(MultiByteToWideChar会返回转换后的宽字符串长度)

本文目标: 了解Delphi的字符串类型 字符编码的检测与转换 简体繁体转换 0. 导言 看完“.Net与字符编码(理论篇)”,我们明白了字符是自然语言中的最小单位,在存储和传输的过程中可以使用三种编码方法:ASCII.DBCS以及Unicode.常见的DBCS编码有GB2312.GBK和BIG5,而UTF-8.UTF-16和UTF-32则是最常用的Unicode编码类型. 1. 字符串类型 在Delphi中有两种字符串类型:AnsiString和WideString.AnsiString被称为

字符、字符串、数组

1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串 在c语言中,将字符串作为字符数组来处理.(c++中不是)

js如何计算一个字符在字符串中出现的次数

js如何计算一个字符在字符串中出现的次数:在实际应用中可能要计算一个字符在字符串中出现的次数,实现此功能的方式有多种,下面就介绍一个非常简单的方式.代码实例如下: function func(str,char) { var str=str; var num=(str.split(char)).length-1; return num } document.write(func("abcdefga","a")); 以上代码可以实现计算一个字符串中指定字符出现的次数.相

第二节 数值、字符与字符串

数值:在电脑中以二进制的方式存储的 字符:也是二进制方式在电脑上存储的,但是与数值不通,字符是以编码形式来显示的, 例如:ASC|| 码 GB2312.UTF8等 字符串:是有一个或多个字符组合起来的,编译器会默认在字符串末尾加上‘\0’(\0表示是结尾) 数值和字符比较 1.存储空间  2.意义差别 数值                       字符串 十进制:65535                     "121" 计算机中:1111 1111 1111 1111    

字符和字符串的基础知识

/* ============================================================================ Name : TestChar.c Author : lf Version : Copyright : Your copyright notice Description : 字符和字符串的基本知识 ======================================================================