edit1.Text := intToStr(pos('市',资中市'));
结果=5,正确.edit1.Text := intToStr(pos('市','资兴市')); 
结果=2 . -_-?edit1.Text := intToStr(pos('市','湖南省郴州市资兴市'));
结果=11,正确.edit1.Text := intToStr(pos('市','湖南省资兴市郴州市'));
结果=8 . -_-?以上结果都进行调试过,有没高手知道为什么会这样的?

解决方案 »

  1.   

    因为“资”的后半部分加上“兴”的前半部分就是“市”。
    s1:='资';
    s2:='兴';
    ShowMessage(s1[2]+s2[1]);
      

  2.   

    不是漏洞,是由于汉字由两个字节组成的,使用WideString就Ok了
    试试看:
    edit1.Text := intToStr(pos('市',WideString('资中市')));
    //结果=3,正确.edit1.Text := intToStr(pos('市',WideString('资兴市')));
    //结果=3