const maxlen = 30;
type strtp = record
       data:array[1..maxlen] of char;
       curlen:0..maxlen;       
end;          var s1:strtp;
    procedure view(t:strtp);
var i:integer;
begin
  for i:=1 to t.curlen do
    begin
      write(t.data[i],' ');
    end;
  writeln
end;function create( ):strtp;
var t:strtp;
    ch:char;
    i:integer;
begin
  i:=0;
  t.curlen:=0;
  write('please input data:');
  writeln;
  read(ch);
  while(ch<>'#13')and(i<maxlen)do
  begin
    i:=i+1;
    t.data[i]:=ch;
    read(ch);
  end;
  if(i>maxlen) then t.curlen:=maxlen;
  t.curlen:=i;
  writeln;
  view(t);
  create:=t
end;
begin
  create(s1)
end.

解决方案 »

  1.   

    var
      S: string;
      VA: array of Char;
    begin
      S := '0123456789';
      SetLength(VA, Length(S));
      CopyMemory(@VA[0], @S[1], Length(S));  // S 转存到字符数组 VA 中。
    end;
      

  2.   

    改了一下你的程序:const maxlen = 30;
    type strtp = record
           data:array[1..maxlen] of char;
           curlen:0..maxlen;
    end;var s1:strtp;
    procedure view(t:strtp);
    var i:integer;
    begin
      for i:=1 to t.curlen do
        begin
          write(t.data[i],' ');
        end;
      writeln
    end;function create(var s:strtp):strtp;//这里加个参数
    var t:strtp;
        ch:char;
        i:integer;
    begin
      i:=0;
      t.curlen:=0;
      write('please input data:');
      writeln;
      read(ch);
      while(ch<>#13)and(i<maxlen)do //#13不能加单引号
      begin
        i:=i+1;
        t.data[i]:=ch;
        read(ch);
      end;
      if(i>maxlen) then t.curlen:=maxlen;
      t.curlen:=i;
      writeln;
      view(t);
      create:=t
    end;
    begin
      create(s1);
    end.
      

  3.   

    var
      s:String;
      pdata:array[0..9] of char;
    begin
      fillchar(pdata,sizeof(pdata),0);
      showmessage(inttostr(sizeof(pdata)));
      s:='12345';
      move(s[1],pdata[0],length(s));