什么函数可以把string转换成array[1..100] of char;(100分)

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

cjfandhf

Unregistered / Unconfirmed
GUEST, unregistred user!
什么函数可以把string转换成array[1..100] of char;
 
bcb中有c_str(),delphi应该也有类似
 
当然是StrPCopy啦!!
 
StrPCopy(Dest: PChar
const Source: string): PChar;
生成的pchar,不是静态数组。
该怎用?
 

这还用转吗?
a: string;
a:= 'abcdefg';

那么 a[1]='a'
a[4]='d'了!
要是非想拷贝就用 strcopy之类的了!事先把string 转为 pchar 类型的 pchar(a)
 
var CharArray: array[0..255] of char;
StrToCopy: String;

...
StrPCopy(CharArray,StrToCopy);
 
为什么
var CharArray: array[0..255] of char;
StrToCopy: String;

...
StrPCopy(CharArray,StrToCopy);
这样行而这样定义
CharArray: array[1..255] of char;不行

 
我不知道,上帝和Borland的程序员知道.... :-)
 
uses SysUtils;
var

A: array[0..79] of Char;
S: String;
begin
S := 'Honk if you know Blaise.';
StrPCopy(A, S);
Canvas.TextOut(10, 10, string(A));
end;
 
chararray 如果不是从0开始的不能转变成pchar类型。
只能是 数组类型。

如果想不从1开始那么这么写
var
CharArray: array[1..255] of char;
StrToCopy: String;
begin
StrToCopy:= 'abcdefg';
StrPCopy(@CharArray,StrToCopy);

就差一个@,取地址符号
 
试试
Str: string
A: array[1..100] of char;

fill(A, 0);
move(Str[1], A, Length(Str));
 
先定义一个没有界限的array
接着用setlength定array的维,
然后自己写一函数将string中的字符往里写。
最后OK啦!
 
同意loopy看法定义一个无界array,然后程序中动态取其长度.
 
晚了,完了!
同意PUZZLE大虾
 
多人接受答案了。
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
652
SUNSTONE的Delphi笔记
S
S
回复
0
查看
675
SUNSTONE的Delphi笔记
S
后退
顶部