我想在输入一个字符串如‘12345678’,但是它输出时是输出‘78563412’。这个要什么实现啊??

解决方案 »

  1.   

    Text := '';
    for i := 1 to Length(Source) do
    begin
      Text := Copy(Str, 1, 1) + Text;
      Delete(Str, 1, 1);
    end;
      

  2.   

    关键:字符串可以看做是一个字符数组
    例:
    var str1,str2:string;
    i,j:integer;
    ch1:char;
    str1:='12345678';
    for i:=1 to length(str1) do
    begin
    j:=i mod 2;
    if j=0 then
       begin
       ch1:=str1[i];
       str1[i]:=str1[i-1];
       str1[i-1]:=ch1;
       end;   
    end;//变成‘21436587’
    setlength(str2,length(str1));
    for i:=0 to length(str1) do
    begin
    str2[length(str1)+1-i]:=str1[i];
    end;//‘str2=78563412’
    str1:=str2;
    //应该ok了    
        你所需要的规则依此都可以规划出来,自己试试
      

  3.   

    将字符串按数组取出,数组下标用随机函数random运算就是了怎么问了2遍?
      

  4.   

    function InvertString(Str: string; Len: Integer = 1): string;
    var
      L: Integer;
    begin
      while Str <> '' do
      begin
        L := Length(Str);
        if L < Len then Len := L;
        Result := Result + Copy(Str, L-Len+1, Len);
        Delete(Str, L-Len+1, Len);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(InvertString('112345678', 2));
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  5.   

    procedure ConvertStr(aSourceStr:String);
    var
      I:Integer;
      vTargetStr:String;
    begin
      vTargetStr:='';
      for I:=1 to Length(aSourceStr) do
        if (I mod 2)=0 then
          vTargetStr:=Copy(aSourceStr,I-1,2)+vTargetStr;
      ShowMessage(vTargetStr)
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ConvertStr(Trim(Edit1.Text))
    end;
      

  6.   

    呵呵,解决了。谢谢FrameSniper(人类不能不吃饭@手机不能不充电.net) 和 lxpbuaa(桂枝香在故国晚秋) ,你们的两种方法差不多。也谢谢 caohonglong2000(chl) ,不过你的方法是倒序输出的。谢谢大家!!!