- Tcl教程
- Tcl - 首页
- Tcl - 概述
- Tcl - 环境设置
- Tcl - 特殊变量
- Tcl - 基本语法
- Tcl - 命令
- Tcl - 数据类型
- Tcl - 变量
- Tcl - 运营商
- Tcl - 决策
- Tcl - 循环
- Tcl - 数组
- Tcl - 字符串
- Tcl - 列表
- Tcl - 字典
- Tcl - 程序
- Tcl - 套餐
- Tcl - 命名空间
- Tcl - 文件 I/O
- Tcl - 错误处理
- Tcl - 内置函数
- Tcl - 正则表达式
- TK 教程
- Tk - 概述
- Tk-环境
- Tk - 特殊变量
- Tk - 小部件概述
- Tk - 基本小部件
- Tk - 布局小部件
- Tk - 选择小部件
- Tk - 画布小部件
- Tk - 大型小部件
- Tk-字体
- Tk - 图像
- Tk - 活动
- Tk-Windows 管理器
- Tk - 几何管理器
- Tcl/Tk 有用资源
- Tcl/Tk - 快速指南
- Tcl/Tk - 有用的资源
- Tcl/Tk - 讨论
Tcl - 字符串
Tcl 的原始数据类型是字符串,我们经常可以在 Tcl 上找到仅字符串语言的引号。这些字符串可以包含字母数字字符、数字、布尔值,甚至二进制数据。Tcl 使用 16 位 unicode 字符,字母数字字符可以包含字母,包括非拉丁字符、数字或标点符号。
布尔值可以表示为 1、yes 或 true 表示 true,0、no 或 false 表示 false。
字符串表示
与其他语言不同,在 Tcl 中,当它只是一个单词时,不需要包含双引号。一个例子可以是 -
现场演示#!/usr/bin/tclsh set myVariable hello puts $myVariable
执行上述代码时,会产生以下结果 -
hello
当我们想要表示多个字符串时,可以使用双引号或大括号。如下所示 -
现场演示#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable
执行上述代码时,会产生以下结果 -
hello world hello world
字符串转义序列
字符文字可以是普通字符(例如“x”)、转义序列(例如“\t”)或通用字符(例如“\u02C0”)。
Tcl 中有一些字符,当它们前面有反斜杠时,它们将具有特殊含义,它们用于表示换行符 (\n) 或制表符 (\t)。在这里,您有一些此类转义序列代码的列表 -
| 转义序列 | 意义 |
|---|---|
| \\ | \ 特点 |
| \' | ' 特点 |
| \" | “ 特点 |
| \? | ?特点 |
| \A | 警报或铃声 |
| \b | 退格键 |
| \F | 换页 |
| \n | 新队 |
| \r | 回车符 |
| \t | 水平制表符 |
| \v | 垂直标签 |
以下是显示一些转义序列字符的示例 -
现场演示#!/usr/bin/tclsh puts "Hello\tWorld\n\nTutorialspoint";
当上面的代码被编译并执行时,它会产生以下结果 -
Hello World Tutorialspoint
字符串命令
下表列出了字符串命令的子命令列表 -
| 先生。 | 方法与说明 |
|---|---|
| 1 | 比较字符串1 字符串2 按字典顺序比较 string1 和 string2。如果相等则返回 0,如果 string1 在 string2 之前则返回 -1,否则返回 1。 |
| 2 | 第一个字符串1 字符串2 返回 string1 在 string2 中第一次出现的索引。如果没有找到,则返回-1。 |
| 3 | 索引字符串索引 返回索引处的字符。 |
| 4 | 最后一个字符串1 字符串2 返回 string1 在 string2 中最后一次出现的索引。如果没有找到,则返回-1。 |
| 5 | 长度字符串 返回字符串的长度。 |
| 6 | 匹配模式字符串 如果字符串与模式匹配,则返回 1。 |
| 7 | 范围字符串索引1索引2 返回字符串中从索引1到索引2的字符范围。 |
| 8 | 下弦_ 返回小写字符串。 |
| 9 | 上弦_ 返回大写字符串。 |
| 10 | 修剪字符串?修剪字符? 删除字符串两端的修剪字符。默认的修剪字符是空格。 |
| 11 | 修剪左字符串?修剪字符? 删除字符串左开头的修剪字符。默认的修剪字符是空格。 |
| 12 | 修剪右字符串?修剪字符? 删除字符串左端的修剪字符。默认的修剪字符是空格。 |
| 13 | wordend查找字符串索引 返回包含索引处字符的单词之后的字符在 findstring 中的索引。 |
| 14 | wordstart查找字符串索引 返回包含索引处字符的单词中第一个字符在 findstring 中的索引。 |
下面给出了一些常用的 Tcl 字符串子命令的示例。
字符串比较
#!/usr/bin/tclsh
set s1 "Hello"
set s2 "World"
set s3 "World"
puts [string compare $s1 $s2]
if {[string compare $s2 $s3] == 0} {
puts "String \'s1\' and \'s2\' are same.";
}
if {[string compare $s1 $s2] == -1} {
puts "String \'s1\' comes before \'s2\'.";
}
if {[string compare $s2 $s1] == 1} {
puts "String \'s2\' comes after \'s1\'.";
}
当上面的代码被编译并执行时,它会产生以下结果 -
-1 String 's1' and 's2' are same. String 's1' comes before 's2'. String 's2' comes after 's1'.
字符串索引
现场演示#!/usr/bin/tclsh set s1 "Hello World" set s2 "o" puts "First occurrence of $s2 in s1" puts [string first $s2 $s1] puts "Character at index 0 in s1" puts [string index $s1 0] puts "Last occurrence of $s2 in s1" puts [string last $s2 $s1] puts "Word end index in s1" puts [string wordend $s1 20] puts "Word start index in s1" puts [string wordstart $s1 20]
当上面的代码被编译并执行时,它会产生以下结果 -
First occurrence of o in s1 4 Character at index 0 in s1 H Last occurrence of o in s1 7 Word end index in s1 11 Word start index in s1 6
字符串长度
现场演示#!/usr/bin/tclsh set s1 "Hello World" puts "Length of string s1" puts [string length $s1]
当上面的代码被编译并执行时,它会产生以下结果 -
Length of string s1 11
办理案件
现场演示#!/usr/bin/tclsh set s1 "Hello World" puts "Uppercase string of s1" puts [string toupper $s1] puts "Lowercase string of s1" puts [string tolower $s1]
当上面的代码被编译并执行时,它会产生以下结果 -
Uppercase string of s1 HELLO WORLD Lowercase string of s1 hello world
修剪字符
现场演示#!/usr/bin/tclsh set s1 "Hello World" set s2 "World" puts "Trim right $s2 in $s1" puts [string trimright $s1 $s2] set s2 "Hello" puts "Trim left $s2 in $s1" puts [string trimleft $s1 $s2] set s1 " Hello World " set s2 " " puts "Trim characters s1 on both sides of s2" puts [string trim $s1 $s2]
当上面的代码被编译并执行时,它会产生以下结果 -
Trim right World in Hello World Hello Trim left Hello in Hello World World Trim characters s1 on both sides of s2 Hello World
匹配字符串
现场演示#!/usr/bin/tclsh
set s1 "test@test.com"
set s2 "*@*.com"
puts "Matching pattern s2 in s1"
puts [string match "*@*.com" $s1 ]
puts "Matching pattern tcl in s1"
puts [string match {tcl} $s1]
当上面的代码被编译并执行时,它会产生以下结果 -
Matching pattern s2 in s1 1 Matching pattern tcl in s1 0
追加命令
现场演示#!/usr/bin/tclsh set s1 "Hello" append s1 " World" puts $s1
当上面的代码被编译并执行时,它会产生以下结果 -
Hello World
格式化命令
下表显示了 Tcl 中可用的格式说明符列表 -
| 说明符 | 使用 |
|---|---|
| %s | 字符串表示 |
| %d | 整数表示 |
| %F | 浮点表示 |
| %e | 尾数指数形式的浮点表示 |
| %X | 十六进制表示法 |
下面给出一些简单的例子 -
现场演示#!/usr/bin/tclsh puts [format "%f" 43.5] puts [format "%e" 43.5] puts [format "%d %s" 4 tuts] puts [format "%s" "Tcl Language"] puts [format "%x" 40]
当上面的代码被编译并执行时,它会产生以下结果 -
43.500000 4.350000e+01 4 tuts Tcl Language 28
扫描命令
Scan 命令用于根据格式说明符解析字符串。下面显示了一些示例。
现场演示#!/usr/bin/tclsh
puts [scan "90" {%[0-9]} m]
puts [scan "abc" {%[a-z]} m]
puts [scan "abc" {%[A-Z]} m]
puts [scan "ABC" {%[A-Z]} m]
当上面的代码被编译并执行时,它会产生以下结果 -
1 1 0 1