zoukankan      html  css  js  c++  java
  • [转载] Delphi 的字符及字符串[2]

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

  • 相关阅读:
    设计模式(十):Decorator装饰者模式 -- 结构型模式
    设计模式(九):Composite组合模式 -- 结构型模式
    Anagrams
    Gas Station
    Unique Binary Search Trees II
    Trapping Rain Water
    4Sum
    3Sum Closest
    3Sum
    Longest Valid Parentheses
  • 原文地址:https://www.cnblogs.com/Little-Star/p/7411572.html
Copyright © 2011-2022 走看看