怎么实现把字符串的值加1,比如abcd+1=abce,abc123+1=abc1234用ord函数只能是ordinal类型的参数,而当是string类型该怎么办,能不能把string 或 char 类型转换为ordinal类型啊?http://expert.csdn.net/Expert/topic/1395/1395245.xml?temp=.4390528

解决方案 »

  1.   

    ord可以操作单个字符,如果是字符串,可以用字符数组的型式操作,以下是DELPHI里的一个帮助:uses Dialogs;
    type   Colors = (RED,BLUE,GREEN);var
      S: string;
     begin
       S := 'BLUE has an ordinal value of ' + IntToStr(Ord(BLUE)) + #13#10;
       S := S + 'The ASCII code for "c" is ' + IntToStr(Ord('c')) +  ' decimal';
       MessageDlg(S, mtInformation, [mbOk], 0);
     end;可以这样:
    var
      I: Integer;
      mStr: string;
    begin
      for i:=0 to x then Ord(mStr[I])......
      

  2.   

    呵呵,abcdz+1是不是等于abce呢?
      

  3.   

    TO: cg1120 你那么做不行啊?还有没有别的方法,我急着呢?TO: westfly(西翔) inc 是一个过程,我怎么使最后一个字符加1后再与原来的字符串连接起来???
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      Len: Integer;
      sStr: Array [0..255] of char;
      sTemp : String;
      iADD : Integer;
    begin
      sTemp := 'Hello';
      iADD := 10;          // Last char add 10;
      StrCopy(@sStr,Pchar(sTemp));
      Len := Length(sTemp);
      sStr[Len-1] := Chr(Ord(sStr[Len-1]) + iAdd);
      showmessage(sstr);
    end;
      

  5.   

    这样就可以了:
    var s:string;
    begin
        s:='abcd2';
        inc(s[length(s)]);
        showmessage(s);
    end;
      

  6.   

    var c : char;
    c := S[Length(S)]; 
    Inc(Byte(c));
    Delete(S,Length(S),1);
    S := S+c;
      

  7.   

    Inc是按址操作,Inc后字符串最后一个字符已改了。
      

  8.   

    感谢 Wnyu(过年了,向大家要红包回家)!!!