求S:='ABCD$EF/1G3H4/I323J/K43L/M4N%7O8P$9QR$STUV'中各字符所对应ASC值的和,但不包括'$'和'/'

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S :String;
      ASCIIValue,i :integer;
    begin
      S := 'ABCD$EF/1G3H4/I323J/K43L/M4N%7O8P$9QR$STUV';
      for i := 1 to Length(S) do
        if (S[i]<>'$') and  (S[i]<>'/') then
        begin
          ASCIIValue := ord(S[i]);
          ShowMessage(S[i]+' ASCII Value is :' + IntToStr(ASCIIValue));
        end;end;
    以上是显示每个字符的ASCII值,你也可以用一个integer型数组将这些值存到数组中。
      

  2.   

    先没看清你是要求和。改成下面的求和。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      S :String;
      TotalASCIIValue,i :integer;
    begin
      S := 'ABCD$EF/1G3H4/I323J/K43L/M4N%7O8P$9QR$STUV';
      TotalASCIIValue := 0;
      for i := 1 to Length(S) do
        if (S[i]<>'$') and  (S[i]<>'/') then
          TotalASCIIValue :=TotalASCIIValue+ord(S[i]);
      ShowMessage('Total ASCII Value is : ' + IntToStr(ToTalASCIIValue));
    end;
      

  3.   

    如果这个字符串需要通过一个PCHAR变量B传给S,请问将B指向的字符串如何传给S,而后用S求和。
      

  4.   

    可以直接传给S,见下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      P :Pchar ;
      S :string;
      TotalASCIIValue,i :integer;
    begin
      P := 'ABCD$EF/1G3H4/I323J/K43L/M4N%7O8P$9QR$STUV';
      S := P;
      TotalASCIIValue := 0;
      for i := 1 to Length(S) do
      if (S[i]<>'$') and (S[i]<>'/') then
      TotalASCIIValue :=TotalASCIIValue+ord(S[i]);
      ShowMessage('Total ASCII Value is : ' + IntToStr(ToTalASCIIValue));end;