小弟初用Delphi,请问如何将一个Pchar型变量的值赋给String型变量.
谢谢大虾们指教.

解决方案 »

  1.   

    直接赋值就行了
    var pC:Pchar;
        sS:String;
    begin
      pc:='123456';
      sS:=pC;//没错的,直接赋值
      

  2.   

    呵呵
    直接赋值就行了
    var pC:Pchar;
        sS:String;
    begin
      pc:='123456';
      sS:=pC;//没错的,直接赋值
      

  3.   

    在大多数情况下,String类型能被用成PChar,应该尽可能地使用AnsiString,因为它
    对字符串内存的管理是自动,极大地减少了应用程序中内存混乱的错误代码,因此,要尽可能
    地避免用PChar类型以及对它相应进行人工分配内存。
      

  4.   

    直接赋值就行了
    var pC:Pchar;
        sS:String;
    begin
      pc:='123456';
      sS:=pC;//没错的,直接赋值
      

  5.   

    直接赋值就行了
    var pC:Pchar;
        sS:String;
    begin
      pc:='123456';
      sS:=pC;//没错的,直接赋值
      

  6.   

    to deniler(deniler)  反过来,如果想把字符串赋给一个字符呢?有没有什么异常能判断错误的?
    _____________________________________________________________________什么意思?string赋给pchar?  pchar不是字符,而是以null结尾的字符串!
    与AnsiString和WideString类型不同,PChar的内存不是由Object Pascal自动产生和管理的,要用ObjectPascal的内存管理函数来为PChar所指向的内存进行分配。PChar字符串的理论最大长度是4GB ,需要人工分配和释放存放字符串的内存。通常,用StrAlloc()函数为PChar缓冲区分配内存,但是其他几种函数也能用来为PChar类型分配函数,包括AllocMem()、
    GetMem()、StrNew()和VirtualAlloc() API函数。这些函数有相应的释放内存的函数。例如:var
    P1,P2:PChar;
    S1,S2:string;
    begin
    P1:=StrAlloc(64*SizeOf(Char));//P1指向一个分配了63个字符的缓冲区
    StrPCopy(P1,'Delphi 5'); //复制一组字母到P1
    S1:='Developer's Guide'; / /在S1中放几个字母
    P2:=StrNew(PChar(S1));//P2指向S1的备份
    StrCat(P1,P2);//连接P1和P2
    S2:=P1; //S2现在为'Delphi 5 Developer's Guide’
    StrDispose(P1) ; //清除P 1和P 2的缓冲区。
    StrDispose(P2);
    end.在为P1分配内存时StrAlloc()中用到的SizeOf(char)。Delphi5以后一个字符的长度从一个字节变成两个字节,因此,不能假定一个字符的长度为一个字节, Sizeof() 就保证了不管字符长度是多少都能正确地分配内存。
      

  7.   

    直接赋值就行了
    var pC:Pchar;
        sS:String;
    begin
      pc:='123456';
      sS:=pC;//没错的,直接赋值
      

  8.   

    Delphi Native String 与 Windows Native String (Null-Terminated String)的转换
    1. function StrPas(const Str: PChar): string;
    把微软内部字符串即以NULL结尾的串转换成Delphi内部使用的字符串。
    2. pchar()
    把Delphi内部使用的字符串转换成微软内部字符串即以NULL结尾的串。