c语言 tcl.exe 自动登录,Tcl命令操作实验-----(3)---字符串

字符串操作:

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_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可以是:

tolower 返回转换成小写字母之后的新字符串

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值