getsubstr("abc-defg-hi",'-');
----------
getsubstr(char *str,char cstr){
char *substr=str+strlen(str);
for (;substr!=cstr&&substr>str;substr--);
return substr;
}
----------
getsubstr(char *str,char cstr){
char *substr=str+strlen(str);
for (;substr!=cstr&&substr>str;substr--);
return substr;
}
var
S:string;
i:integer;
begin
s := '';
i := Length(dst);
while i >= 1 do
begin
if dst[i]='-' then break;
s := dst[i]+s;
dec(i);
end;
result := s;
end;
或者循环去掉“-”前的字符串,最后剩下的就是你要的字符串
begin
while pos(str,'-')<>-1 then
str:=copy(str,pos(str,'-')+1,length(str)-pos(str,'-'));
result:=str;
end;
showmessage(copy('abc-defg',length('abc-defg')-4+1,4));
TempVar:=copy('abcdefg',3,2);---> TempVar='cd'
调用以下函数的方法是:假如删除“abcdef”中的“c”或“cd”Edit1.Text := FilterSpecialString('abcdef','c'); //Edit1.Text='abdef';Edit1.Text := FilterSpecialString('abcdef','cd'); //Edit1.Text='abef';Function TForm1.FilterSpecialString(OriginString, SpecialString: String): String;Vari,j : Integer;fromSit,ToSit : Integer; //源字符串的位置ResultString : String; //返回结果字符串OriginStrLength, SpecialStrLength : Integer; //源字符串和特殊字符串的长度Begin result := ''; If (SpecialString = '') Or (Length(SpecialString) > Length(OriginString)) Then Begin Result := OriginString; Exit; end; ResultString := ''; j := 1; i := 1; FromSit := 1; OriginStrLength := Length(OriginString); SpecialStrLength := Length(SpecialString); While(i <= OriginStrLength) Do BeginIf OriginString[i] = SpecialString[j] Then Begin If j = SpecialStrLength Then Begin ToSit := i; ResultString := ResultString + Copy(OriginString,FromSit,ToSit - SpecialStrLength - FromSit + 1); FromSit := i + 1; j := 1; End Else j := j + 1; End Else Begin If j <> 1 Then i := i - j + 1; j := 1; End; i := i + 1; End; ResultString := ResultString + Copy(OriginString,FromSit,OriginStrLength - FromSit + 1); Result := ResultString;end;