Delphi的字符及字符串[2]

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;
//宽字符指针 PWideCharvar
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;

唉~: 代码着色在这里又出现问题, 不过现在没心情修改了, 以后再说吧.

时间: 2025-01-31 05:59:36

Delphi的字符及字符串[2]的相关文章

Delphi的字符及字符串[6]

Delphi的字符及字符串[6] - Char(AnsiChar).WideChar与其编码的相互转换 //Char 类型与其编码值的转换: var b: Byte; c: Char; begin b := Ord('A'); {返回: 65} b := Ord(#65); {返回: 65} b := Ord($41); {返回: 65} b := Ord(#$41); {返回: 65} b := Byte('A'); {返回: 65} b := Byte(#65); {返回: 65} b :=

Delphi 的字符及字符串[1]

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

Delphi的字符及字符串[4]

//字符串与字符数组var arr: array[0..5] of Char; str: string; begin {可以把字符串常量直接赋给字符数组; 但超界不行} arr := 'Delphi'; ShowMessage(arr); {Delphi} {可以把字符数组直接赋给字符串变量} str := arr; ShowMessage(str); {Delphi} {但不能把一个字符串变量赋给字符数组} //arr := str; {错误} {其实字符串内部也是包含了一个字符数组, 所以能

Delphi的字符及字符串[5]

Windows API 中的字符串对应这 Delphi 的 PChar(PAnsiChar); 在 API 中使用 Delphi 的字符串还 是比较灵活的. 先说赋值://赋值方法1: 给直接量 begin SetWindowText(Handle, '新标题'); end; //赋值方法2: 定义它要的类型 var p: PChar; begin p := '新标题'; SetWindowText(Handle, p); end; //赋值方法3: 转换成它要的类型 var str: stri

Delphi的字符及字符串[3]

//String 的指针地址及实际的内存地址 var str: string; pstr: PString; pc: PChar; begin {在没有给 str 赋值以前, 既然声明了, 就有了指针地址 (@str):} ShowMessage(IntToStr(Integer(@str))); {1244652; 这是在栈中的 str 的指针地址} {但现在还没有分配真正储存字符串内存} ShowMessage(IntToStr(Integer(str))); {0; 0 就是 null}

Delphi调用WinAPI 字符及字符串函数(1)

CharLower - 字符或字符串转小写 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5:

Delphi调用WinAPI 字符及字符串函数(3)

CharUpper - 字符或字符串转大写 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5:

Swift字符与字符串

直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 4 /*******************字符********************/ 5 /* 6 1.单个字符来指定字符常量,如"A"."9" 7 2.转义字符表示特殊字符常量,如"\n"."\t" 8 3.使用 \u{n} 的Unicode形式,n代表一个1-8位的十六进制数 9 4.必须用双引号包起来

[叩响C#之门]第2章 2.3 字符和字符串

2.3 字符和字符串 计算机除了数字计算外,还要处理字符.字符包括英文字母.希腊字母.各种特殊符号以及汉字等,甚至包括0~9这十个数字符号.那么在C#中是如何表示字符呢?