delphi 结构, Str 转 array of Char;
typePSpeak=^Speak;Speak=recordrDate:Word;sName:array[0..14]ofChar;end;variName:PSpeak...
type
PSpeak=^Speak;
Speak = record
rDate : Word;
sName : array[0..14] of Char;
end;
var
iName :PSpeak;
str :string;
begin
try
str :=‘好好学习’;
iName.rDate:=$06;
iName.sName:=Str; // 为什么不能转换, 有什么办法解决吗?
而这样就行iName.sName:=‘好好学习’;
有什么办法转换呢? PChar 不行 是乱码。 展开
PSpeak=^Speak;
Speak = record
rDate : Word;
sName : array[0..14] of Char;
end;
var
iName :PSpeak;
str :string;
begin
try
str :=‘好好学习’;
iName.rDate:=$06;
iName.sName:=Str; // 为什么不能转换, 有什么办法解决吗?
而这样就行iName.sName:=‘好好学习’;
有什么办法转换呢? PChar 不行 是乱码。 展开
4个回答
展开全部
type
PSpeak = ^Speak;
Speak = record
rDate: Word;
sName: array[0..14] of AnsiChar;
end;
var
iName: PSpeak;
str: PAnsiChar;
begin
str := '好好学习';
iName := GetMemory(SizeOf(Speak));
iName^.rDate := $06;
StrCopy(@iname^.sName, str);
ShowMessage(PChar(@iname^.sName));
FreeMemory(iName);
end;
PSpeak = ^Speak;
Speak = record
rDate: Word;
sName: array[0..14] of AnsiChar;
end;
var
iName: PSpeak;
str: PAnsiChar;
begin
str := '好好学习';
iName := GetMemory(SizeOf(Speak));
iName^.rDate := $06;
StrCopy(@iname^.sName, str);
ShowMessage(PChar(@iname^.sName));
FreeMemory(iName);
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var i:integer;
for i:=0 to length(iname.sname)-1 do
iname.sname[i]:=str[i];
for i:=0 to length(iname.sname)-1 do
iname.sname[i]:=str[i];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一种方法:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
s1 :array [1..10] of Char;
l:integer;
i:Integer;
begin
s:='test';
l:=Length(s);
for I := 1 to l do
begin
s1[i]:=s[i]
end;
end;
第二种方法:
procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
s1 :array [1..10] of Char;
l:integer;
i:Integer;
begin
s:='test';
CopyMemory(@s1,@s[1],length(s)-1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
s1 :array [1..10] of Char;
l:integer;
i:Integer;
begin
s:='test';
l:=Length(s);
for I := 1 to l do
begin
s1[i]:=s[i]
end;
end;
第二种方法:
procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
s1 :array [1..10] of Char;
l:integer;
i:Integer;
begin
s:='test';
CopyMemory(@s1,@s[1],length(s)-1);
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-20
展开全部
你PSpeak这个记录中的sName一定要定义成数组类型吗?为什么不定义为string类型呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询