function NumberAlphaInc(S: string): string; var I: Integer; begin Result := S; for I := Length(S) downto 1 do case S[I] of '0'..'9': if S[I] = '9' then Result[I] := '0' else begin Result[I] := Succ(S[I]); Break; end; //大写我不管 'a'..'z': if S[I] = 'z' then Result[I] := 'a' else begin Result[I] := Succ(S[I]); Break; end; end; end; { NumberAlphaInc }procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := NumberAlphaInc(Edit1.Text); end;
构造一个字符串,将原字符串中的字母都替换为数字零;然后按数字相加;
对照原字符串,在原字母的地方再用原字母的ASCII码和对应位置的数字相加;
可是如果两个字母相加得到什么呢?
var
I: Integer;
begin
Result := S;
for I := Length(S) downto 1 do
case S[I] of
'0'..'9': if S[I] = '9' then
Result[I] := '0'
else begin
Result[I] := Succ(S[I]);
Break;
end;
//大写我不管
'a'..'z': if S[I] = 'z' then
Result[I] := 'a'
else begin
Result[I] := Succ(S[I]);
Break;
end;
end;
end; { NumberAlphaInc }procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := NumberAlphaInc(Edit1.Text);
end;
你没有进位啊,只是每一位都加1。
嘻嘻嘻不要害我嘻嘻嘻嘻
嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻请大家为我调试调试说个公道话