TCL 中的數據類型只有一種:字符串。這些字符串可以是字母、數字、布爾值、標點符號等特殊字符的組合。在某些特殊命令的作用下,字符串可以向其他數據類型轉換。下面將系統的講解或回顧下字符串的相關知識。
基本定義
字符串不包含空格等特殊字符時,可以不使用雙引號。
字符串包含空格時,可以使用雙引號、大括號,也可以使用反斜杠進行轉義。
字符串包含特殊字符時,可以使用引號加反斜杠轉義,也可以使用大括號。大括號內所有的特殊字符都是普通字符,不做任何處理。
# 無特殊符號,不使用雙引號或大括號
set str_noquote Hello_world
# 有特殊符號使用雙引號
set str_space1 "Hello world !"
# 有空格,使用 \\ 反斜杠
set str_space2 Hello\\ world\\ !
# 有其他特殊符號,使用“雙引號+反斜杠”,或直接使用大括號
set str_schar1 "\\$1 = 6.6 RMB"
set str_schar2 {$1 = 6.6 RMB}
puts $str_noquote
puts $str_space1
puts $str_space2
puts $str_schar1
puts $str_schar2
#% Hello_world
#% Hello world !
#% Hello world !
#% $1 = 6.6 RMB
#% $1 = 6.6 RMB
常用的反斜杠置換(轉義序列)陳列如下:
\\ | \\ 反斜杠字符 | \\f | 換頁 |
---|---|---|---|
' | ' 單引號字符 | \\n | 新一行 |
'' | " 雙引號字符 | \\r | 水平制表符 |
? | ? 問號字符 | \\v | 垂直制表符 |
\\b | 退格 | \\xhh | 十六進制表示字符的 ASCII 碼 |
字符串拼接
使用 append 命令可以將多個字符串進行拼接。
set str "I have "
set str_append "a "
append str $str_append "good friend!"
puts $str
#% I have a good friend!
字符串格式
使用 format 命令可以設置字符串格式,常用格式說明如下。
格式 | 說明 |
---|---|
%s | 字符串顯示 |
%c | 字符顯示 |
%d | 十進制顯示 |
%x | 十六進制顯示 |
%b | 二進制顯示 |
%f | 浮點數顯示 |
%e | 指數形式顯示 |
format 使用示例如下:
puts "28 in string: [format %s 28]"
# 還可以加入其他需要打印的字符
puts [format "0x32 in char: %c" 0x32]
# 一次性指定多個模式時,需要使用雙引號
puts "28 in hex and bin: [format "0b%b 0x%x" 28 28]"
puts "0x1c in dec: [format %d 0x1c]"
puts "0.035 in float: [format %1f 0.035]"
puts "0.035 in exponent: [format %e 0.035]"
#% 28 in string: 28
#% 0x32 in char: 2
#% 28 in hex and bin: 0b11100 0x1c
#% 0x1c in dec: 28
#% 0.035 in float: 0.035000
#% 0.035 in exponent: 3.500000e-02
字符串解析
使用 scan 命令可以解析一個字符串的格式并賦值給變量。返回值為成功轉換的個數。
整數賦值格式示例如下:
# 輸入為整數,賦值成功
set flag [scan "1314" {%[0-9]} var1]
puts "var is: $var1, and success flag: $flag"
# 輸入為整數,格式要求為 a-z, 賦值失敗,var2 變量不存在
set flag [scan "1314" {%[a-z]} var2]
puts "success flag: $flag"
#% var is: 1314, and success flag: 1
#% success flag: 0
多個字符/字符串賦值格式示例如下:
set flag [scan "forever" {%[0-9]} var3]
puts "success flag: $flag"
set flag [scan "forever" {%[A-Z]} var4]
puts "success flag: $flag"
# 輸入小寫字母
set flag [scan "forever" {%[a-z]} var5]
puts "var is: $var5, and success flag: $flag"
#% success flag: 0
#% success flag: 0
#% var is: forever, and success flag: 1
scan 更像是 format 逆操作,能從字符串中提取出相應格式的數據。
set flag [scan "28 in hex and bin: 0b11100 0x1c" \\
"%d in hex and bin: 0b%b 0x%x" \\
var_dec var_bin var_hex]
puts "var is: $var_dec $var_bin $var_hex"
# 按字符解析并賦值,只賦值第一個字符“h”
set flag [scan "hde" "%c" var7]
puts "var is: $var7, and success flag: $flag"
#% var is: 28 28 28
#% var is: 104, and success flag: 1
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
7030瀏覽量
89034 -
TCL
+關注
關注
10文章
1725瀏覽量
88603 -
字符串
+關注
關注
1文章
579瀏覽量
20516 -
命令
+關注
關注
5文章
684瀏覽量
22027
發布評論請先 登錄
相關推薦
字符串的表示
字符串的表示 隨著計算機在文字處理與信息管理中的廣泛應用, 字符串已成為最常用的數據類型之一, 許多計算機中都提供字符串操作功能, 一些計算機還給出讀寫字
發表于 10-13 17:11
?3067次閱讀
LabVIEW的常用字符串操作教程免費下載
字符串操作與信息的保存和顯示密不可分,而字符串操作運用也是LabⅥEW程序設計的一個難點,因此熟練使用字符串操作函數是使用LabⅥEW進行編程所必備的能力之字符串函數選板位于函數面板:
發表于 08-21 14:51
?26次下載
什么是復制字符串?Python如何復制字符串
連續幾篇文章都在寫 Python 字符串,這出乎我的意料了。但是,有的問題,不寫不行,特別是那種靈機一動想到的問題,最后你發現,很多人根本不懂卻又誤以為自己懂了。那就繼續刨根問底,探究個明白吧
發表于 11-25 10:32
?3018次閱讀
strtok拆分字符串
大家好,我是驚覺,今天聊聊字符串。字符串的使用場景非常之多,人機交互和雙機通信都會用到。比如:通過串口向單片機發送指令,以執行操作或配置參數。單片機讀取傳感器數據,數據格式是字符串。一般GPS數據
發表于 01-13 15:46
?8次下載
2.2 python字符串類型
2.2 python字符串類型 1. 如何定義字符串? 字符串是Python中最常用的數據類型之一。 使用單引號或雙引號來創建字符串,使用三引號創建多行
字符串函數重寫練習
字符串函數重寫練習:字符串比較、字符串拼接、字符串查找、字符串拷貝、內存比較、內存拷貝、內存初始化、內存比較、二維數組定義及基本使用、位運算
一文詳解JavaScript字符串
JavaScript字符串是原始值。此外,字符串是不可變的。這意味著如果你修改一個字符串,你總是會得到一個新的字符串。原始字符串不會被改變。
python字符串有哪些特定方法
python字符串序列操作也適用于列表和元組。
python字符串還有獨有方法,即字符串對象的函數,其他對象不可調用,只有字符串對象可調用。
labview掃描字符串怎么用
介紹如何在 LabVIEW 中使用掃描字符串以及相關的技巧和注意事項。 字符串是 LabVIEW 中的一種基本數據類型,表示一系列字符的序列。掃描字
labview字符串如何轉換為16進制字符串
在LabVIEW中,將字符串轉換為16進制字符串是一個常見的需求,尤其是在處理數據通信和硬件接口時。LabVIEW提供了多種方法來實現這一轉換,包括使用內置函數、編寫VI(Virtual
評論