Tcl命令操做實驗-----(3)---字符串

字符串操做:express

string option string1 string2app

其中option能夠是:spa

compare 按字母順序比較,小於則返回-1,等於返回0,大於返回1code

match 判斷是否匹配element

first判斷string2中string1第一次出現的位置,若是沒有則返回-1字符串

last 和first做用相反,最後一次出現的位置,若是沒有則返回-1get

trim 刪除string1的開頭和結尾的string2,中間的不會刪除string

string trim ____abc_def____ _abc_def_
string trim ____abc_def____
____abc_def____
string trim ____abc_def____ ____
abc_def
string trim ____abc_def____ a
____abc_def____
string trim abcdabcd a
bcdabcd
string trim abcdabcda a
bcdabcd
string compare abc bcd
-1
string compare 234 123
1
string match 123 2
0
string match 123 123
1
string first abc 123abc234abc567
3
string last abc 123abc234abc567
9

string option string命令,其中option能夠是:it

tolower 返回轉換成小寫字母以後的新字符串io

toupper大寫

trimleft刪除左邊的全部空白字符

length 返回長度

string tolower abCdEfg
abcdefg
string toupper abcdefg
ABCDEFG
string length abcdef
6

string range命令:

string range abcdefg 2 3
cd
string range abcdefg 1 3
bcd
string range abcdefg 2 3
cd
string range abcdefg 2 4
cde
string range abcdefg 2 5
cdef

經過以上實驗發現string range命令的第一個數字和第二個數字分別表明字符串中的起始位置和結束位置,特別是第二個數字並非表明要截取的子字符串的長度

 append命令:字符串追加,能夠無限追加

set n 123
123

append n a b c
123abc

puts $n
123abc

split命令 將字符串轉換成列表,格式爲:split string 分隔符

puts $n
123abc
split $n a
123 bc

split abcdefg e
abcd fg

Tcl中只有字符串型變量,因此用到數字進行計算時須要用到incr和expr操做命令

array name a
1 15 16
incr a(0) +3
3
array name a
0 1 15 16
array leng a
bad option "leng": must be anymore, donesearch, exists, get, names, nextelement, set, size, startsearch, statistics, or unset
array length a
bad option "length": must be anymore, donesearch, exists, get, names, nextelement, set, size, startsearch, statistics, or unset
array size a
4
set j 123
123
incr j +100
223
puts $j
223
incr j
224

expr命令有點相似C語言中的算術操做符(Tcl中邏輯真值是1,邏輯假值是0),有!(只要是0,執行!0以後就是1,只要是非零,執行!以後就是0),

parray a
a(0)  = 0
a(1)  = 0
a(15) = hello
a(16) = 16
expr !$a(1)
1
expr !$a(15)
invalid bareword "hello"
in expression "!hello";
should be "$hello" or "{hello}" or "hello(...)" or ...

注意上面的錯誤提示:我猜測有可能Tcl命令中可以將一個命令的執行結果看成另外一個命令的變量

expr 5 * $a(16)
80
expr 12 >> 1
6
expr 12 << 1
24
expr 3>2 ? 5:6
5
expr 3<2 ? 5:6
6
expr 5 %2
1
expr 5 /2
2
expr 5 /1.2
4.166666666666667
expr 5 % 1.2
can't use floating-point value as operand of "%"
expr abc(-3)
invalid command name "tcl::mathfunc::abc"
expr abs(-3)
3
expr round(1.234)
1
expr round(1.634)
2
expr sin(3.14 /2)
0.9999996829318346
expr cos(0)
1.0
相關文章
相關標籤/搜索