如何将string类型的变量转换为变量中所有字符的ASCII码的和(50分)

  • 主题发起人 主题发起人 yayatian
  • 开始时间 开始时间
Y

yayatian

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将一个string变量,转换为变量中所有字符的ASCII码的和,不知怎样实现,有没有现成的系统函数可用?请各位大虾指点迷津
 
用一个循环可以取出string中所有字符
再用:function Ord(X): Longint;
将各个字符转换成对应的ascII
 
这很好办:算法:
Var StrLen, i: Integer;
begin
Sum =0;
StrLen = Length(字符串变量如Str);
For i=1 to StrLendo
begin
getAscii=用pascal的取字符的顺序函数的到Str字符的Ascii码
Sum := Sum + getAscii;
end;

ShowMessage(IntToStr(Sum));
end;

这只是一个算法,具体的实施还得依靠你自己。
 
function SumString(const AStr: string): Integer;
var
I: Integer;
begin
Result := 0;
for I := 1 to Length(AStr)do
Result := Result + Ord(AStr);
end;
 
没有现成的系统函数,自己写个不费劲
 
procedure SumString(Var S: string);
var
I, J: Integer;
begin
J := 0;
for I := 1 to Length(S)do
J := J + Ord(S);
S := IntToStr(J);
end;
 
这样也可以的:
tmpstr :string;
i,j :integer;
j :=integer(tmpstr);
 
好象没有现成的系统函数可用,只有自己写。用Ord()函数既可得到一个字符的ASCII的值,由于Ord()函数只能转换字符类型的数据,所以只能将字符串中单个字符逐一转换:Ord(S)(S为字符串,i为字符串中的个数取(1-L)L=Length(S)),这样将依次转换的值相加就可得到你想要的结果了。
 
多谢各位大虾,我将把分数,分给3h和barton.
 
后退
顶部