请教string与char间的转换(30分)

  • 主题发起人 主题发起人
  • 开始时间 开始时间

Unregistered / Unconfirmed
GUEST, unregistred user!
有什么办法可以把string转成char 数组呢???谢谢!!!
 
var
aStr:AnsiString;
PaStr:PChar;
begin
aStr:='Hello';
PaStr:=Pchar(aStr);

Application.MessageBox(PaStr,'Hello',0);

end;
 
?
String不就是Char数组吗?
var
s:String;
c:Char;
begin
s:='China'
c:=s[1]//c的值不就是'C'吗?
Label1.Caption:=format('%s',[c]);//试试吧!!!
end;
 
杜宝说的对!
 
你们只说了从char 转成string,如果我要把string 转成char的话,怎么办呢??
只能是这样?
var
s:string;//不大于65个字符
c:array[0.64] of char;
begin
for i:=0 to length(s) do
c:=s[i+1];
end

to 杜宝

“String不就是Char数组吗?”
我的认为是,理解可以这样,但实际编程中它们是不一样的,你说呢?

to joe_michael
我需要的是char类型而不是PChar类型
 
to 枫:
要把string 转成char的话,怎么办呢??
Easy !!!
CopyMemory(@C,@S[1],Length(S));

注意 S为AnsiString,如果是WideString请先转换成AnsiString

 
to Jedei
你用的函数我在DELPHI里查不到,是否是API函数??
是否有此函数的说明,谢谢!!!
 
该函数是Win Api,在Windows.Pas里
procedure CopyMemory(Destination: Pointer
Source: Pointer
Length: DWORD);
不过Borland用他自己的方法实现的。


the CopyMemory function copies a block of memory from one location to another.

VOID CopyMemory (

PVOID Destination, // address of copy destination
CONST VOID *Source, // address of block to copy
DWORD Length // size, in bytes, of block to copy
);


Return Values

This function has no return value.
 
ok,谢谢了!!
 
后退
顶部