字符串操作:
string option string1 string2
其中option可以是:
compare 按字母顺序比较,小于则返回-1,等于返回0,大于返回1
match 判断是否匹配
first判断string2中string1第一次出现的位置,如果没有则返回-1
last 和first作用相反,最后一次出现的位置,如果没有则返回-1
trim 删除string1的开头和结尾的string2,中间的不会删除
string trim ____abc_def____ _abc_def_string trim ____abc_def________abc_def____string trim ____abc_def____ ____abc_defstring trim ____abc_def____ a____abc_def____string trim abcdabcd abcdabcdstring trim abcdabcda abcdabcdstring compare abc bcd-1string compare 234 1231string match 123 20string match 123 1231string first abc 123abc234abc5673string last abc 123abc234abc5679
string option string命令,其中option可以是:
tolower 返回转换成小写字母之后的新字符串
toupper大写
trimleft删除左边的所有空白字符
length 返回长度
string tolower abCdEfgabcdefgstring toupper abcdefgABCDEFGstring length abcdef6
string range命令:
string range abcdefg 2 3cdstring range abcdefg 1 3bcdstring range abcdefg 2 3cdstring range abcdefg 2 4cdestring range abcdefg 2 5cdef通过以上实验发现string range命令的第一个数字和第二个数字分别代表字符串中的起始位置和结束位置,特别是第二个数字并不是代表要截取的子字符串的长度
append命令:字符串追加,可以无限追加
set n 123123append n a b c123abcputs $n123abc
split命令 将字符串转换成列表,格式为:split string 分隔符
puts $n123abcsplit $n a123 bcsplit abcdefg eabcd fg
Tcl中只有字符串型变量,所以用到数字进行计算时需要用到incr和expr操作命令
array name a1 15 16incr a(0) +33array name a0 1 15 16array leng abad option "leng": must be anymore, donesearch, exists, get, names, nextelement, set, size, startsearch, statistics, or unsetarray length abad option "length": must be anymore, donesearch, exists, get, names, nextelement, set, size, startsearch, statistics, or unsetarray size a4set j 123123incr j +100223puts $j223incr j224
expr命令有点类似C语言中的算术操作符(Tcl中逻辑真值是1,逻辑假值是0),有!(只要是0,执行!0之后就是1,只要是非零,执行!之后就是0),
parray aa(0) = 0a(1) = 0a(15) = helloa(16) = 16expr !$a(1)1expr !$a(15)invalid bareword "hello"in expression "!hello";should be "$hello" or "{hello}" or "hello(...)" or ...
注意上面的错误提示:我猜想有可能Tcl命令中能够将一个命令的执行结果当作另一个命令的变量
expr 5 * $a(16)80expr 12 >> 16expr 12 << 124expr 3>2 ? 5:65expr 3<2 ? 5:66expr 5 %21expr 5 /22expr 5 /1.24.166666666666667expr 5 % 1.2can't use floating-point value as operand of "%"expr abc(-3)invalid command name "tcl::mathfunc::abc"expr abs(-3)3expr round(1.234)1expr round(1.634)2expr sin(3.14 /2)0.9999996829318346expr cos(0)1.0