Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 将字符串转换为两个字符并反转两个字符_String_Delphi_Split_Reverse - Fatal编程技术网

String 将字符串转换为两个字符并反转两个字符

String 将字符串转换为两个字符并反转两个字符,string,delphi,split,reverse,String,Delphi,Split,Reverse,你好,我想把一个简单的字符串分成两个字符,然后把它们颠倒过来 例如,我的字符串对象反转为两个字符,每个字符都是我要保存的字符串 然后将每个拆分的两个字符反转为: St:=ts ri:=ir 等等 这是我正在使用的代码,但它在备注行上只显示一个字符 procedure TForm7.Button1Click(Sender: TObject); var MyString: string; i: integer; k: integer

你好,我想把一个简单的字符串分成两个字符,然后把它们颠倒过来

例如,我的字符串对象反转为两个字符,每个字符都是我要保存的字符串 然后将每个拆分的两个字符反转为: St:=ts ri:=ir 等等

这是我正在使用的代码,但它在备注行上只显示一个字符

     procedure TForm7.Button1Click(Sender: TObject);
     var
        MyString: string;
        i: integer;
        k: integer;
        j: integer;
     begin
          MyString:= Edit1.Text;

         for i:= 1 to length(MyString) do
         Memo1.Lines.Add(MyString[i]);
     //    Move(Str[1], MyString, Length(Str));

     end;
     end.

这应该可以满足你的需要

function ReverseEachTwoChars(AInput : string) : string;
var
  i : integer;
begin
  if(Odd(Length(AInput))) then
  begin
    SetLength(AInput, Length(AInput) + 1);
    AInput[Length(AInput)] := 'A';
  end;

  SetLength(Result, Length(AInput));
  i := 1;
  while(i < Length(Result)) do
  begin
    Result[i] := AInput[i + 1];
    Result[i + 1] := AInput[i];
    Inc(i, 2);
  end;
end;
输出:

102030405060

所以
测试字符串
应该变成
eTtss rtnig
?我不确定我们用数字测试是否更好,例如010203040506是否为102030405060。所以我的问题的答案可能是“是”。如果输入字符串的长度不是偶数,会发生什么情况?
函数F(const S:string):string;开始结果:=S;对于变量i:=0到S.Length div 2-1,开始结果[2*i+1]:=S[2*i+2];结果[2*i+2]:=S[2*i+1];结束;结束
注意
Move()
以字节而不是字符进行处理
SizeOf(Char)
在Delphi 2009和以后的版本中是2个字节谢谢,简单的函数可以完成这项工作,比如说我想在第一个字符中添加字母A,例如1 02 03 04 05 06 07 07 08 09到A1 20 30 40 50 60 70 80 90我如何继续?@coolirc为什么你不自己尝试一下呢?@David,我已经在做了,谢谢你的帮助
102030405060