请给一个StrToInt的实现函数,谢谢(100)

  • 主题发起人 主题发起人 siking
  • 开始时间 开始时间
自己写就是了,从右到左是个位、十位、百位.....
 
function StrToInt(s: string): integer;var j: integer;begin Val(s, result, j)
if j > 0 then result := 0;end;
 
有必要吗?
 
有必要,因为有的时候引用sysutitls程序太大!
 
function _StrToInt(const str: string): integer;var BoMinus : Boolean
i, Dig : integer;begin Result := 0
BoMinus := False
for i := 1 to Length(Str) do begin Dig := Ord(Str) - 48
if (i = 1) and (Dig = -3) then // '-' BoMinus := True else if (i = 1) and (Dig = -5) then // '+' BoMinus := False else if (Dig < 0) or (Dig > 9) then begin Result := 0
Exit
end else Result := Result * 10 + dig
end
if BoMinus then Result := -Result;end;
 
谢谢各位!明天继续讨论
 
function MyStrToInt(const S: String): Integer;var I, X, Pwr: Integer;begin Pwr:= 1
Result:= 0
for I:= Length(S) downto 1 do begin X:= Byte(S) - Ord('0')
Inc(Result, X * Pwr)
Pwr:= Pwr * 10
end;end;
 
多人接受答案了。
 
后退
顶部