(1) 字符串

//最常用的 string
var
str:
string; {定义}
begin
str :
= '万一'; {赋值}
ShowMessage(IntToStr(Length(str)));
{长度是: 4}
str:
='AA';
ShowMessage(IntToStr(Length(str)));
{长度是: 2}
str:
=#$AA;
ShowMessage(IntToStr(Length(str)));
{长度是: 1}
end;

(2) 字符

 

//单字符 Char, 只有 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;

(3) 字符串和字符数组

 

{字符串 < > 字符数组}
var
arr:
array[0..5] of Char;
str:
string;
begin
{可以把字符串常量直接赋给字符数组; 但超界不行}
arr :
= 'Delphi';
ShowMessage(arr);
{Delphi}

{可以把字符数组直接赋给字符串变量}
str :
= arr;
ShowMessage(str);
{Delphi}

{其实字符串内部也是包含了一个字符数组, 所以能索引访问, 不过它的索引起始于 1}
ShowMessage(str[
1]); {D}
ShowMessage(arr[
0]); {D}

{但不能把一个字符串变量赋给字符数组}
//arr := str; {错误; 这需要用其他手段实现, 譬如复制或移动内存}
end;

 

(4)Char 与 Byte,Ord和Chr

     Byte是一个Integer类型的变量,取值范围 0..255,即 unsigned 8-bit

 

var
c: Char;
b: Byte;
begin
c :
= 'A';
ShowMessage(c);
//A

b :
= 65;
ShowMessage(IntToStr(b));
//65

c :
= Chr(66);
ShowMessage(c);
//B

b :
= Ord('B');
ShowMessage(IntToStr(b));
//66
end;

Ord函数是用于取得一个ASCII码的数值。     Chr函数正好相反,用于取得一个数值的ASCII值

 

{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 :
= Byte($41); {返回: 65}
b :
= Byte(#$41); {返回: 65}

c :
= Chr(65); {返回: A }
c :
= Chr($41); {返回: A }

c :
= Char(65); {返回: A }
c :
= Char($41); {返回: A }
end;

 

 

 

 

posted on 2010-02-17 08:30  耐心  阅读(783)  评论(0编辑  收藏  举报