字符串S其实也是个数组
因此要这么写
for i:=1 to length(s) do
begin
  m[i]=s[i];
end;

解决方案 »

  1.   

    strpcopy(m,s);不行,
    提示信息:Incompatible types: 'Array' and 'Pchar' 
      

  2.   

    qiandeng(千灯) :
        按你的方法也得不到正确结果,如
        m:='377237327237237723473';
        showmessage(m)的显示为'377237327237237723473'
        而:
        s:='377237327237237723473';
        for i:=1 to length(s) do
          m[i]:=s[i]
        showmessage(m)的信息则不是'377237327237237723473'
    why???????????????????????????????????????????
        
      

  3.   

    array of char,
    pchar,
    string,
    三者的转换呀,是有点搞不清;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    我运行的好好的!
    var Str:String;
    var P:Array[0..10] of char;//注意,从0开始
    begin
            Str:='3333';
            StrPCopy(p,Str);
            ShowMessage(StrPas(P));end;
      

  5.   

    BCB(:)) :
        Thank you!!!!!!!!!!!!!
        万分感谢!!!!!!!!!!
        分全送给你了!!!顺便问 一下:
    for i:=1 to length(s) do
    begin
      m[i]=s[i];
    end; 
    这样为何不行?
      

  6.   

    m[length(s)+1]:=char(0);
    少了尾0!!!!!!
      

  7.   

    strcopy(m,pchar(s));
    或 strpcopy(m,s);
      

  8.   

    for i:=1 to length(s) do
    begin
      m[i-1]=s[i];
    end; 
    //字符串是以1开始,而你的数组是0开始,当然不对了。
      

  9.   

    简单的方法.
    move(s[1],m,Length(s));