• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

[在线等]如何将字符数组中的一段字符转换成字符串?

darzui 2004-08-05 03:46:25
有一个字符数组Buffer,我想转换Buffer[0]到Buffer[20]的字符到字符串,应该怎么做?
我的想法是一个字符一个字符地拷贝到字符串中,但是有没有更好的方法?delphi提供了相关的函数吗?
谢谢!
...全文
152 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
darzui 2004-08-05
把参数chars设置成静态数组,就行了,晕,文档上明明写着参数是动态数组的
回复
luke5678 2004-08-05
procedure TForm1.Button1Click(Sender: TObject);
var
Str: string;
i : integer;
A_array: array [0..19] of char;
begin
Str := '';
A_array[0] := 'A';
A_array[1] := 'B';
...
A_array[19] := 'T';
for i := 0 to 19 do
Str := Str + string(A_array[i]);
ShowMessage(Str);
end;
回复
GoldShield 2004-08-05
var
s:string;
.....
for i:=1 to 20 do
begin
...
s:=s+Buffer[i];
...
end;
回复
wizardqi 2004-08-05
//我是这样测试的。
function GetSubStr(Str:array of char;BeginPos,Len:Integer):String;
begin
Result:=Copy(Str,Beginpos,Len);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Buffer:array[0..100] of Char;
begin
Buffer:='1a2s3dfasdfasdfasdfasdfasdfasdf';
ShowMessage(GetSubStr(Buffer,0,20));
end;
回复
darzui 2004-08-05
我试了试copy函数
var
s: string;
begin
s := copy(chars, 5, 10);
end;
但是编译器报错Incompatible types 'String' and 'dynamic array'
怎么回事?
回复
wizardqi 2004-08-05
function GetSubStr(Str:array of char;BeginPos,Len:Integer):String;
begin
Result:=Copy(Str,Beginpos,Len);
end;

str:=GetSubStr(Buffer,0,20);即可
干脆用 str:=(Buffer,0,20);多简单。
瞧我做了些什么?真罗嗦。 ^_^
回复
bluesky23 2004-08-05
这个函数也可以
Copy(vStr,start,length);
回复
bluesky23 2004-08-05
var
Str: string;
achar: array [0..200] of char;
begin
Str:='拷贝字符号串sdfsdfsdsdfsdfsdf';
CopyMemory(@achar, PChar(Str), Length(Str));
achar[Length(Str)] := #0; // <---- 设置结束标志
MessageBox(0,achar,achar,MB_ok);
end;

注意Copy的内容的长度不要超过200
回复
bluesky23 2004-08-05
还没有见到这样的函数。
回复
发帖
Delphi
创建于2007-08-02

4869

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2004-08-05 03:46
社区公告
暂无公告