超级菜:pchar和char有什么区别,如何将他们转换成string,并去掉两端空格

解决方案 »

  1.   

    这种基础问题学会从DELPHI帮助问题中查找答案!The generic PChar represents a pointer to a Char (that is, in its current implementation, to an AnsiChar). These character pointers are used to manipulate null-terminated strings. String()//强制类型转换
    Trim()//去掉两端空格
      

  2.   

    Pchar:^Char把鼠标放在PChar上就可以看到!
      

  3.   

    Strpas()也可转换类型function StrPas(const Str: PChar): string;
    begin
      Result := Str;
    end;就是怎么容易很多时候不用转化就能互相兼容,一般和其它程序交换数据时才必须使用PChar!
      

  4.   

    Char  为字符类型,一个长度为1的字符串常量,比如'A',可以表示一个字符.
    PChar 表示指针,它指向一个以0结尾的Char字符数组字符数组:象C和C++,它们没有专门的字符串类型,这些语言以及它们创建的系统依赖于零结为字符串,它们是0下标开始的字符数组,并且最后一个是NULL(#0)比如
    Var P:Pchar;
    ...
    P:='Hello Word!';(注:编译器在字符串的末尾添加一个NULL)
    使P指向一个内存区域,这里存储着'Hello World!',它的结尾被添加一个NULL字符。表达式中可以混合使用字符串(String)和零结尾字符串(PChar)
    可以把PChar强制转换为字符串类型
    比如说:
    var P:Pchar;
    ...
    String(P);同样也可以把Char强制转换为字符串类型
    比如说:
    var
    a:char;
    b:String;
    begin
          a:='a';
          b:=String(a);
    end;唉,我的手都打酸了!
      

  5.   

    不支持使用
    s:= string(p)这种形式。
    使用s := p;delphi中不用string不用转换就可以转成pchar试一试就行了。
    而string转成pchar,就需要用pchar(s)来转
    var
      P: PChar;
      S: string;
    begin
      ...
      S := P;
      ...
      P := PChar(S);
    end;
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      P: PChar;
      S: string;
    begin
      GetMem(P, 2);
      P^ := 'a';
      Inc(P);
      P^ := 'b';
      Dec(P);
      S := P;
      Caption := Format('s: %p, p: %p, string(p): %p', [
        Pointer(S), Pointer(p), Pointer(string(p))]);
      FreeMem(P);
    end;