比如s:='1223354251'; (string)帮我写个函数..取出:12 23 35 42 51(十位数) 然后每个加一, 就是 13 24 36 43 52.然后返回值(string),result='1324364352';

解决方案 »

  1.   


    function MyFunc(s: String): String;
    var
      i, j : Integer;
    begin
      Result := '';
      for i := 1 to Length(S) div 2 do
      begin
        j := StrToIntDef(Copy(S, i * 2 - 1, 2), 0);
        Result := Result + Format('%.2d', [(j + 1) mod 100]);
      end;
    end;//测试代码
    ShowMessage(MyFunc('1223354251'));
    ShowMessage(MyFunc('0001029899'));
      

  2.   

    很简单,楼主是才接触Delphi吧?
      

  3.   

    function test(str:string):string;
    var
        i,j:integer;
        strs:tstringlist;
        str1,str2:string;
    begin
        j:=1;
        str1:='';
        strs:=tstringlist.Create;
        for I := 0 to trunc(length(str)/2) - 1 do
            begin
                str2:=inttostr(strtoint(copy(str,j,2))+1);
                strs.Add(str2);
                j:=j+2;
            end;
        for I := 0 to strs.Count - 1 do
            begin
               str1:=str1+strs[i];
            end;
            result:=str1;
    end;
      

  4.   

    要考虑进位
    function MyFunc(s: String): String;
    var
      L,m,i,j: Integer;
    begin
      Result := '';
      L:=length(s);
      M:=l div 2;
      i:=strtoint(s);
      for j := 1 to m do
      begin
        i:=i+erp (2(i-1)ln(10));
      end;
      result:=i;
    end;
      

  5.   


    function ChangeStr(sourceStr:string):string;
    begin
      result:='';
      while  Length(sourceStr)>0 do
      begin
        result:=result + FormatFloat('00',(strtoint(Copy(sourceStr,0,2)))+1);
        Delete(sourceStr,1,2);
      end;
    end;