一个字符串为:string1=
CCCCCCHHHHHHHHHHHHHHHHHHTTHHHHHHHTTSCHHHHHHHHHHHHH 
HHHHHHHHHHHTHHHHHHSSCSSSCCCSTTGGGTTCCTTCEETTEEHHHH 
HHHHHHHHHHHHHHHHHHHGGGBCHHHHHHHHHHHHHHTHHHHHHHHHSS 

另一个为:string2=
cccccccchhhhhhhhhhhhhcccccceeeeecccccccchhhhccceee
eeeeeeeeeeeeeeecccccccceeeccchhhhcchhhhhhhcceeeeee
eeecccccceeeeehhhhhhhhhccceeeeeeeeeeecceeceeeeeecc
chhhhhccccccccchhhhhhhhhhhhhhhhhccccccccccccccccce
 
这两个字符串是等长的,以string1为模板,我要比较string1为H,在相同的位置string2是否为H或h,如果是则表示正确,否则错误,然后统计出string2中总共H数,预测正确的H数(即前面与string1比较同为H),该如何实现呢?请指点迷津,万分感谢!

解决方案 »

  1.   

    pos,delete,copy组合起来
      
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    string1,string2:string;
    i,re:integer;
    begin
      re:=0;
      string1:='CCCCCCHHHHHHHHHHHHHHHHHHTTHHHHHHHTTSCHHHHHHHHHHHHH'+
    'HHHHHHHHHHHTHHHHHHSSCSSSCCCSTTGGGTTCCTTCEETTEEHHHH'+
    'HHHHHHHHHHHHHHHHHHHGGGBCHHHHHHHHHHHHHHTHHHHHHHHHSS';
      string2:='cccccccchhhhhhhhhhhhhcccccceeeeecccccccchhhhccceee'+
    'eeeeeeeeeeeeeeecccccccceeeccchhhhcchhhhhhhcceeeeee'+
    'eeecccccceeeeehhhhhhhhhccceeeeeeeeeeecceeceeeeeecc';
      for i:=0 to length(string1)-1 do
      begin
        if Upcase(string1[i])=Upcase(string2[i]) then re:=re+1;
      end;
      showmessage(inttostr(re));
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    string1,string2:string;
    i,re:integer;
    begin
      re:=0;
      string1:='CCCCCCHHHHHHHHHHHHHHHHHHTTHHHHHHHTTSCHHHHHHHHHHHHH'+
    'HHHHHHHHHHHTHHHHHHSSCSSSCCCSTTGGGTTCCTTCEETTEEHHHH'+
    'HHHHHHHHHHHHHHHHHHHGGGBCHHHHHHHHHHHHHHTHHHHHHHHHSS';
      string2:='cccccccchhhhhhhhhhhhhcccccceeeeecccccccchhhhccceee'+
    'eeeeeeeeeeeeeeecccccccceeeccchhhhcchhhhhhhcceeeeee'+
    'eeecccccceeeeehhhhhhhhhccceeeeeeeeeeecceeceeeeeecc';
      for i:=0 to length(string1)-1 do
      begin
        if (Upcase(string1[i])=Upcase(string2[i])) and (Upcase(string2[i])='H') then re:=re+1;
      end;
      showmessage(inttostr(re));
    end;function getre(i:integer):boolean;
    var
      string1,string2:string;
    begin
      string1:='CCCCCCHHHHHHHHHHHHHHHHHHTTHHHHHHHTTSCHHHHHHHHHHHHH'+
    'HHHHHHHHHHHTHHHHHHSSCSSSCCCSTTGGGTTCCTTCEETTEEHHHH'+
    'HHHHHHHHHHHHHHHHHHHGGGBCHHHHHHHHHHHHHHTHHHHHHHHHSS';
      string2:='cccccccchhhhhhhhhhhhhcccccceeeeecccccccchhhhccceee'+
    'eeeeeeeeeeeeeeecccccccceeeccchhhhcchhhhhhhcceeeeee'+
    'eeecccccceeeeehhhhhhhhhccceeeeeeeeeeecceeceeeeeecc';
      Result:=false;
      if (Upcase(string1[i])=Upcase(string2[i])) and (Upcase(string2[i])='H') then Result:=true;
    end;
      

  4.   

    我调试了下,i好像应该从1开始,即for i:=1 to length(string1) do
    否则计算好像相差一个
    上面那个函数(function getre(i:integer):boolean;
    )好像没用上啊!
    谢谢kernelj