Delphi字符串、PChar與字符數組之間的轉換


來自:http://my.oschina.net/kavensu/blog/193719

-----------------------------------------------------------------

var

  s: string;

  p: pchar;

  a: array[1..20] of char;



1、字符串 ---> PChar

  p := PChar(s);



2、PChar ---> 字符串

  s := p;



3、PChar ---> 字符數組

  StrCopy(@a , p);



4、字符數組 ---> PChar

  PChar(@a);



5、字符串 ---> 字符數組

  StrCopy(@a , PChar(s));



6、字符數組 ---> 字符串

  s := PChar(@a);



【注】字符串和字符數組之間的轉換借助 PChar 做中轉;

 

3.PChar類型純粹為兼容C和WindowsAPI而設,使用非常麻煩。
APChar := StrAlloc(n); -- 分配空間
StrDispose(APChar); -- 釋放空間
當然是以地址來傳遞的。

 

Delphi字符串、PChar與字符數組之間的轉換
設有以下三個變量:
var
s:string;
p:pchar;
a:array[1..20] of char;
那么三者之間的轉換如下:
1、字符串到PChar
    p:=PChar(s);
2、PChar到字符串
    s:=p;
3、PChar到字符數組
    StrCopy(@a,p);
4、字符數組到PChar
    PChar(@a);
5、字符串與字符數組之間的轉換就只有通過PChar來中轉了。例如下面這個例子:
procedure TForm1.btn1Click(Sender: TObject);
var
str:array[1..10] of char;
begin
StrCopy(@str,PChar(mmo1.Text));
mmo2.Text:=PChar(@str);
end;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM