我只是想知道之间的区别CompareStr
and =
用于比较 Delphi 中的字符串。两者产生相同的结果。
if(str2[i] = str1[i]) then
ShowMessage('Palindrome')
if(CompareStr(str2[i], str1[i]) = 0) then
ShowMessage('Palindrome')
两者都显示消息回文。
Use CompareStr
不是当您只想查看两个字符串是否相等时,而是当您想知道一个字符串相对于另一个字符串进行比较时。如果第一个参数首先出现,它将返回一个小于 0 的值(asciibetically),如果第一个参数所属,它将返回一个大于零的值after第二。
Without 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;
那比较str1
and str2
两次。和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;
正如格里的回答 https://stackoverflow.com/questions/6452400/difference-between-comparestr-and-for-strings-in-delphi/6453171#6453171解释说,该函数在排序函数中特别有用,特别是因为它与其他比较函数(例如CompareText
and AnsiCompareStr
。排序函数是一个模板法 http://en.wikipedia.org/wiki/Template_method_pattern,并且每个函数都作为比较strategy http://en.wikipedia.org/wiki/Strategy_pattern.
如果您只想测试相等性,请使用=
运算符——更容易阅读。使用CompareStr
当您需要它提供的额外功能时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)