delphi 从一个字符串中减去相等的另一串字符

比如:str1='1+3-4+'str2='1+3-4+5'要进行str2-str1得到结果是5给str3.str1的内容不一定,但str2就比str1多了个数字。... 比如: str1='1+3-4+' str2='1+3-4+5' 要进行str2-str1 得到结果是 5 给 str3.
str1的内容不一定,但str2 就比str1多了个数字。
展开
 我来答
wnh_2009
2012-12-17 · 超过11用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:23.6万
展开全部
procedure TForm1.Button2Click(Sender: TObject);
var
str, str1, str2: string;
p: Cardinal;
begin
str1 := '1+3-4+';
str2 := '1+3-4+5';
p := Pos(str1, str2) + Length(str1);
str := Copy(str2, p, Length(str2) - (p - 1));
ShowMessage(str)
end;

这可能不是你要的答案,如不是详细描述一下。
追问
p := Pos(str1, str2) + Length(str1);//其中的pos得到的值是否是1?是的话加上str2的长度就是多出来的字符开始的位置。
str := Copy(str2, p, Length(str2) - (p - 1));//那么从str2中的多出来的那个位置开始 取 出后边的所有字符 给str
我说的是否正确?我就是想把这个后边多出来的字符取出来 看来这个是我想要的
另外再问一下这个是 buttonclick事件?
那么点击一下button2 就会出来 5 的massage?
追答
理解完全正确。
//其中的pos得到的值是否是1?是的话加上str2的长度就是多出来的字符开始的位置。

要改一下下面这句
p := Pos(str1, str2) + Length(str1);
改为
p := Pos(str1, str2);
if p 0 then
p := p + Length(str1)
else
Exit;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式