0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

字符串的相關(guān)知識(shí)

CHANBAEK ? 來源:數(shù)字IC與好好生活的兩居室 ? 作者:除夕之夜啊 ? 2023-03-29 11:41 ? 次閱讀

TCL 中的數(shù)據(jù)類型只有一種:字符串。這些字符串可以是字母、數(shù)字、布爾值、標(biāo)點(diǎn)符號(hào)等特殊字符的組合。在某些特殊命令的作用下,字符串可以向其他數(shù)據(jù)類型轉(zhuǎn)換。下面將系統(tǒng)的講解或回顧下字符串的相關(guān)知識(shí)。

基本定義

字符串不包含空格等特殊字符時(shí),可以不使用雙引號(hào)。

字符串包含空格時(shí),可以使用雙引號(hào)、大括號(hào),也可以使用反斜杠進(jìn)行轉(zhuǎn)義。

字符串包含特殊字符時(shí),可以使用引號(hào)加反斜杠轉(zhuǎn)義,也可以使用大括號(hào)。大括號(hào)內(nèi)所有的特殊字符都是普通字符,不做任何處理。

# 無特殊符號(hào),不使用雙引號(hào)或大括號(hào)
set str_noquote Hello_world
# 有特殊符號(hào)使用雙引號(hào)
set str_space1 "Hello world !"
# 有空格,使用 \\ 反斜杠
set str_space2 Hello\\ world\\ !
# 有其他特殊符號(hào),使用“雙引號(hào)+反斜杠”,或直接使用大括號(hào)
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

常用的反斜杠置換(轉(zhuǎn)義序列)陳列如下:

\\ \\ 反斜杠字符 \\f 換頁
' ' 單引號(hào)字符 \\n 新一行
'' " 雙引號(hào)字符 \\r 水平制表符
? ? 問號(hào)字符 \\v 垂直制表符
\\b 退格 \\xhh 十六進(jìn)制表示字符的 ASCII 碼

字符串拼接

使用 append 命令可以將多個(gè)字符串進(jìn)行拼接。

set str "I have "
set str_append "a "
append str $str_append "good friend!"
puts $str


#% I have a good friend!

字符串格式

使用 format 命令可以設(shè)置字符串格式,常用格式說明如下。

格式 說明
%s 字符串顯示
%c 字符顯示
%d 十進(jìn)制顯示
%x 十六進(jìn)制顯示
%b 二進(jìn)制顯示
%f 浮點(diǎn)數(shù)顯示
%e 指數(shù)形式顯示

format 使用示例如下:

puts "28 in string: [format %s 28]"
# 還可以加入其他需要打印的字符
puts [format "0x32 in char: %c" 0x32]
# 一次性指定多個(gè)模式時(shí),需要使用雙引號(hào)
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 命令可以解析一個(gè)字符串的格式并賦值給變量。返回值為成功轉(zhuǎn)換的個(gè)數(shù)。

整數(shù)賦值格式示例如下:

# 輸入為整數(shù),賦值成功
set flag [scan "1314" {%[0-9]} var1]
puts "var is: $var1, and success flag: $flag"
# 輸入為整數(shù),格式要求為 a-z, 賦值失敗,var2 變量不存在
set flag [scan "1314" {%[a-z]} var2]
puts "success flag: $flag"
#% var is: 1314, and success flag: 1
#% success flag: 0

多個(gè)字符/字符串賦值格式示例如下:

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 逆操作,能從字符串中提取出相應(yīng)格式的數(shù)據(jù)。

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"
# 按字符解析并賦值,只賦值第一個(gè)字符“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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89034
  • TCL
    TCL
    +關(guān)注

    關(guān)注

    10

    文章

    1725

    瀏覽量

    88603
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    20516
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    684

    瀏覽量

    22026
收藏 人收藏

    評論

    相關(guān)推薦

    C++字符串string

    string是C++編程語言中的字符串。在C++中字符串處理可以使用c語言字符串形式char *,也可以使用string類格式。
    的頭像 發(fā)表于 07-10 00:26 ?1289次閱讀
    C++<b class='flag-5'>字符串</b>string

    字符串的表示

    字符串的表示  隨著計(jì)算機(jī)在文字處理與信息管理中的廣泛應(yīng)用, 字符串已成為最常用的數(shù)據(jù)類型之一, 許多計(jì)算機(jī)中都提供字符串操作功能, 一些計(jì)算機(jī)還給出讀寫字
    發(fā)表于 10-13 17:11 ?3067次閱讀
    <b class='flag-5'>字符串</b>的表示

    字符串的輸入輸出及相關(guān)函數(shù)

    字符串的輸入輸出及相關(guān)函數(shù)
    的頭像 發(fā)表于 09-14 11:52 ?6093次閱讀
    <b class='flag-5'>字符串</b>的輸入輸出及<b class='flag-5'>相關(guān)</b>函數(shù)

    LabVIEW的常用字符串操作教程免費(fèi)下載

    字符串操作與信息的保存和顯示密不可分,而字符串操作運(yùn)用也是LabⅥEW程序設(shè)計(jì)的一個(gè)難點(diǎn),因此熟練使用字符串操作函數(shù)是使用LabⅥEW進(jìn)行編程所必備的能力之字符串函數(shù)選板位于函數(shù)面板:
    發(fā)表于 08-21 14:51 ?26次下載
    LabVIEW的常用<b class='flag-5'>字符串</b>操作教程免費(fèi)下載

    什么是復(fù)制字符串?Python如何復(fù)制字符串

    連續(xù)幾篇文章都在寫 Python 字符串,這出乎我的意料了。但是,有的問題,不寫不行,特別是那種靈機(jī)一動(dòng)想到的問題,最后你發(fā)現(xiàn),很多人根本不懂卻又誤以為自己懂了。那就繼續(xù)刨根問底,探究個(gè)明白吧
    發(fā)表于 11-25 10:32 ?3018次閱讀

    strtok拆分字符串

    大家好,我是驚覺,今天聊聊字符串字符串的使用場景非常之多,人機(jī)交互和雙機(jī)通信都會(huì)用到。比如:通過串口向單片機(jī)發(fā)送指令,以執(zhí)行操作或配置參數(shù)。單片機(jī)讀取傳感器數(shù)據(jù),數(shù)據(jù)格式是字符串。一般GPS數(shù)據(jù)
    發(fā)表于 01-13 15:46 ?8次下載
    strtok拆分<b class='flag-5'>字符串</b>

    字符串函數(shù)重寫練習(xí)

    字符串函數(shù)重寫練習(xí):字符串比較、字符串拼接、字符串查找、字符串拷貝、內(nèi)存比較、內(nèi)存拷貝、內(nèi)存初始化、內(nèi)存比較、二維數(shù)組定義及基本使用、位運(yùn)算
    的頭像 發(fā)表于 05-05 15:02 ?1998次閱讀

    字符串操作

    labview字符串操作
    發(fā)表于 06-28 15:09 ?2次下載

    C語言總結(jié)_字符串全方位練習(xí)

    C語言字符串全方位練習(xí),涉及知識(shí)點(diǎn):字符串解析、大小寫判斷、字符串插入、字符串刪除、字符串排序、
    的頭像 發(fā)表于 08-14 09:41 ?1503次閱讀

    C語言_字符串與指針的練習(xí)

    這篇文章涉及到字符串與指針知識(shí)點(diǎn)的相關(guān)練習(xí)。浮點(diǎn)數(shù)與字符串互轉(zhuǎn)、字符串拷貝、字符串比較、指針交換
    的頭像 發(fā)表于 08-14 09:51 ?1492次閱讀

    一文詳解JavaScript字符串

    JavaScript字符串是原始值。此外,字符串是不可變的。這意味著如果你修改一個(gè)字符串,你總是會(huì)得到一個(gè)新的字符串。原始字符串不會(huì)被改變。
    的頭像 發(fā)表于 12-08 16:36 ?1209次閱讀

    python字符串有哪些特定方法

    python字符串序列操作也適用于列表和元組。 python字符串還有獨(dú)有方法,即字符串對象的函數(shù),其他對象不可調(diào)用,只有字符串對象可調(diào)用。
    的頭像 發(fā)表于 02-23 15:02 ?710次閱讀

    C語言字符串的引用方式

    在C語言程序中,字符串是存放在字符數(shù)組中的。 2. 用字符數(shù)組存放一個(gè)字符串,可以通過數(shù)組名和下標(biāo)引用字符串中的一個(gè)
    的頭像 發(fā)表于 03-10 14:57 ?1940次閱讀

    labview掃描字符串怎么用

    介紹如何在 LabVIEW 中使用掃描字符串以及相關(guān)的技巧和注意事項(xiàng)。 字符串是 LabVIEW 中的一種基本數(shù)據(jù)類型,表示一系列字符的序列。掃描
    的頭像 發(fā)表于 12-29 10:12 ?2033次閱讀

    labview字符串如何轉(zhuǎn)換為16進(jìn)制字符串

    在LabVIEW中,將字符串轉(zhuǎn)換為16進(jìn)制字符串是一個(gè)常見的需求,尤其是在處理數(shù)據(jù)通信和硬件接口時(shí)。LabVIEW提供了多種方法來實(shí)現(xiàn)這一轉(zhuǎn)換,包括使用內(nèi)置函數(shù)、編寫VI(Virtual
    的頭像 發(fā)表于 09-04 15:54 ?2476次閱讀