一个PChar类型的string,一个Pchar类型的分隔符,最后希望得到字符串中
两个分隔符之间的子串,返回PChar,请问该怎么做,请提供源码救命啊!!
例如('www.csdn.com')我想取到'csdn'子串。
function getstr(source:Pchar;achar:Pcahr;i:integer):Pchar;(i := 2)

解决方案 »

  1.   

    Delphi有一个Copy函数的Copy('www.csdn.com',5,4)就会得到csdn
      

  2.   

    var
      i:integer;
      tmp:pchar;
    begin
      i:=pos(achar,source);
      tmp:=copy(source,i+1,Length(source)-i);
      i:=pos(achar,tmp);
      result:=copy(tmp,1,i);
    end;
      

  3.   

    用string(source)转为字符串,用POS函数得到子串位置,用COPY函数取子串,返回时再用PCHAR()函数转换一下,写得麻烦了点
      

  4.   

    pos用来定位/
    COPY来取得所要的字符
      

  5.   

    先length_0=length('www.csdn.com')
    length_1=pos('www.csdn.com','.')
    然后ss=copy('www.csdn.com',length_1,length_0)='csdn.com'
    在length_2=pos(ss,'.')=5
    sss=copy(ss,1,length_2)='csdn'
      

  6.   

    function GetStr(source:Pchar;aChar:PCHAR):pchar;
    var
      tmpstr:string;
      ch:string;
    begin
      tmpstr:=strpas(source);
      ch:=strpas(aChar);
      delete(tmpstr,1,pos(ch,tmpstr));
      delete(tmpstr,pos(ch,tmpstr),length(tmpstr)-pos(ch,tmpstr)+1);
      result:=PCHAR(tmpstr);
    end;
      

  7.   

    一个思路
    挺乱,你自己看看是不是会有帮助
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j,m,n:integer;
      s1,s,s2,s3,s4,s5:string;
    begin
      m:=0;
      s1:='.';
      s:='www.csdn.net';
      form1.Edit2.Text:=s;
      i:=length(s);
      for j:=0 to i-1 do
        begin
          s2:=s[j];
          if s[j]=s1 then
          begin
            s3:=s3+inttostr(j);
            m:=m+1;
          end;
        end;
      showmessage(s3);
      showmessage(inttostr(m));
      form1.Edit1.Text:=s3;
      form1.Edit1.SelStart:=0;
      form1.Edit1.SelLength:=1;
      s4:=form1.Edit1.SelText;
      form1.Edit1.SelStart:=1;
      form1.Edit1.SelLength:=1;
      s5:=form1.Edit1.SelText;
      showmessage(s4);
      showmessage(s5);
      form1.Edit2.SelStart:=strtoint(s4);
      form1.Edit2.SelLength:=strtoint(s5)-strtoint(s4)-1;
      form1.Edit2.Text:=form1.Edit2.SelText;
    end;
      

  8.   

    其实Pchar跟string有什么不同用法,两者不能像同一种类型使用吗?
    是否可以apchar := astring?这样进行赋值啊?
      

  9.   

    pos函数和copy函数建议你看看help