为什么字符串compare返回-1,即使两个字符串相同



在字符串比较中,我得到的是-1而不是0我使用了以下代码

set s1 "sekhar" 
set s2 "sekhar"
puts [string compare s1 s2]

当你这样做时:

string compare s1 s2

您正在比较字符串文字s1s2。由于s1根据规则较小(与具有增强功能的C strcmp()函数基本相同),因此得到-1

要将字符串与这些名称进行比较,需要在将变量输入string compare之前读取这些变量。您可以在名称前面加上$(在Tcl中的意思是"立即读取此变量"):

string compare $s1 $s2

在内部,Tcl通过引用传递值,并尽可能减少对局部变量表中索引的变量访问(即在过程中)。这个操作实际上在实践中相当快。

最新更新