一个数组与字符串转换的问题? ( 积分: 50 )

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

superd

Unregistered / Unconfirmed
GUEST, unregistred user!
将一个array[1..256] of char的数组赋给一个字符串,而这个数组实际内容的长度不确定,怎样将赋值后的字符串多余的长度字符去掉,只留下字符串里有内容的部分?
 
将一个array[1..256] of char的数组赋给一个字符串,而这个数组实际内容的长度不确定,怎样将赋值后的字符串多余的长度字符去掉,只留下字符串里有内容的部分?
 
var str:string;
p:array[1..256] of char;
begin
p[n]:=#0;
str;=pchar(@p[1]);
 
那你的字符串用PChar就行了
 
那么将字符串转成字符数组?
 
procedure TForm1.Button2Click(Sender: TObject);
var str:string;
buf:array[0..100] of char;
begin
str:='test1234567890!';
move(str[1],buf,length(str));
end;
 
楼上的方法简单实用!
 
把数组赋给字符串后,把字符串赋到一个edit控件里,它会替你清理多余字符,你只要取edit1.text就可以了,要不然就自己一个字节一个字节的去取字符串的结尾符
 
procedure TForm1.Button2Click(Sender: TObject);
var str:string;
buf:array[0..100] of char;
begin
str:='test1234567890!';
strlcopy(@buf,Pchar(str),101);
end;
 
自己改去吧:
var
target : string;
source : array[1..5] of Char;
srcPtr : PChar;
i : Integer;

begin
// Fill out the character array
for i := 1 to 5 do
source := Chr(i+64);

// Copy these characters to a string
srcPtr := Addr(source);
SetString(target, srcPtr, 5);

// Show what we have got
ShowMessage('target now = '+target);
end;
 
后退
顶部