gpt4 book ai didi

delphi - Delphi中字符串的CompareStr和 '='之间的区别

转载 作者:行者123 更新时间:2023-12-03 14:39:32 27 4
gpt4 key购买 nike

我只是想知道Delphi中比较字符串的CompareStr=之间的区别。两者产生相同的结果。

if(str2[i] = str1[i]) then
ShowMessage('Palindrome')

if(CompareStr(str2[i], str1[i]) = 0) then
ShowMessage('Palindrome')

两者都显示消息回文。

最佳答案

当您只想查看两个字符串是否相等时,而不是当您想知道一个字符串相对于另一个字符串进行比较时,请使用CompareStr。如果第一个参数首先出现(asciibetically),它将返回一个小于 0 的值;如果第一个参数第二个参数之后,它将返回一个大于零的值。

如果没有CompareStr,您可能会有如下代码:

if str1[i] = str2[i] then begin
// They're equal
end else if str1[i] < str2[i] then begin
// str1 comes first
end else begin
// str2 comes first
end;

比较 str1str2 两次。使用CompareStr,您可以删除其中一个字符串比较,并将其替换为更便宜的整数比较:

x := CompareStr(str1[i], str2[i]);
if x = 0 then begin
// They're equal
end else if x < 0 then begin
// str1 comes first
end else begin
// str2 comes first
end;

As Gerry's answer解释说,该函数在排序函数中特别有用,特别是因为它与其他比较函数(例如 CompareTextAnsiCompareStr)具有相同的接口(interface)。排序函数是template method ,每个函数作为比较strategy .

如果您只想测试是否相等,请使用 = 运算符 - 它更易于阅读。当您需要 CompareStr 提供的额外功能时,请使用它。

关于delphi - Delphi中字符串的CompareStr和 '='之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com