delphi中string如何转化为array of char

1:我知道,我对这方面研究很深!标准答案:

例子:
procedure TForm1.Button1Click(Sender: TObject);
var
mychar: array of char;
mystr: string;
begin
mystr:=‘this’;
setlength(mychar,4); //设置数组长度
move(mystr[1],mychar[0],length(mystr)); //赋值
end;

/经过测试
2:var
ss:string;
i:integer;
aa:char;
begin
ss:=‘abcde’;
for i:=1 to length(ss) do
begin
aa:= ss[i];
showmessage(aa) ;
end;
end;
试试看你就明白了…呵呵
3:不用函数,字符串实际上就是字符数组
因为因为多,所以起了一个名字叫string
st:string;
ch:char;
st:=‘hello,world’;
ch:=st[3];

你可以通过下标访问那个字符
4:ss:string ;
cc:char ;
i:integer ;

cc:=ss[i] //注意此处i必须大于 0,下于等于 length(ss)

5:Var
_str:string;
carr:array [1…255] o char;
begin
_str:=‘What Can I Do For You ?’;
FillChar(cArr,SizeOf(carr),0);
Move(_Str[1],CArr,LengTh(_Str));
// CArr为你需要的结果!
end;

6:var
cArray: array[0…30] of Char; //定长字符数组
dArray: array of Char; //动态字符数组
str: string;
iLen: Integer;
begin
str := ‘wo shi xiaobenben’;
iLen := Length(str);

FillChar(cArray, sizeof(cArray), #0);
Move(PChar(str)^, cArray[0], iLen);

SetLength(dArray, iLen 1);
FillChar(dArray[0], iLen 1, #0);
Move(PChar(str)^, dArray[0], iLen);

Caption := cArray ’ - ’ PChar(dArray);
end;

7:我找到别的答案:

s1:string;
s2:array[0…255] of char;

strmove(s2,pchar(s1),length(s1));
谢谢大家

8:s1:stirng;
s2:array[1…123]of char;
s2:=@s1[1]^
9:大体就是这样了:
var
mychar: array of char;
mystr: string;
begin
mystr:=‘name’;
setlength(mychar,4); //设置数组长度
move(mystr[1],mychar[0],length(mystr)); //赋值
end;

10:可以不用MOVE拷贝内存的
11:s1:string;
s2:array[1…123]of char;
s2:=@s1[1]^;
编译不过。
12:其实你s2:pchar;
s2:=@s[1];
就可以了,传递数组的时候你传递指针就行了,和C/C 一样,
13:@s[1]指向的可能是非0结尾的串,例如 s:=‘123’;
但@s[1]可能是123¥%34阿df#0

所以应该是:

s2:=pchar(s1);
14:就是这个了:

s1:string;
s2:array[0…255] of char;

strmove(s2,pchar(s1),length(s1));

15:可以结束了


版权声明:本文为ysgs129原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。