[unixc_tcl] TCL-format命令-scan命令
(2011-12-22 09:33:47)
标签:
formatscanit |
分类: unix/linux |
因为TCL把所有的输入都当作字符串看待,所以TCL提供了较强的字符串操作功能,TCL中与字符串操作有关的命令有:string、format、regexp、regsub、scan等。
format命令
语法:format formatstring ?vlue
value...?
format命令类似于ANSIC中的sprintf函数和MFC中CString类提供的Format成员函数。它按formatstring提供的格式,把各个value的值组合到formatstring中形成一个新字符串,并返回。例如:
%set name john
John
%set age 20
20
%set msg [format "%s is %d years old" $name $age]
john is 20 years old
语法:scan string format varName
?varName ...?
scan命令可以认为是format命令的逆,其功能类似于ANSI
C中的sscanf函数。它按format提供的格式分析string字符串,然后把结果存到变量varName中,注意除了空格和TAB键之外,string
和format中的字符和'%'必须匹配。例如:
% scan "some 26 34" "some %d %d"
a b
2
% set a
26
% set b
34
% scan "12.34.56.78" "%d.%d.%d.%d" c d e f
4
% puts [format "the value of c is %d,d is %d,e is %d ,f is %d" $c
$d $e $f]
the value of c is 12,d is 34,e is 56 ,f is 78
scan命令的返回值是匹配的变量个数。而且,我们发现,如果变量varName不存在的话,TCL会自动声明该变量。