精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

string命令合集

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

string 命令合集

(1) 常用的 string 命令如下表所示,其中粗體部分表示 TCL 系統命令或參數

(2) “str1 str2 ...”、“index1 index2 ...”等,表明參數可以指定多個。

(3) 注意各個命令使用字符串變量時,格式是 **str 還是 str。一般使用 **str 時會返回新的字符串,使用 str 時不會返回新的字符串。

命令格式 說明
string comparestr1str2 字符串比較,str1 大于、等于、小于時,返回值分別為 1、0、-1。
string equalstr1str2 字符串比較,嚴格相同返回 1,否則返回 0??梢灾付?-nocase 選項,不區分大小寫比較。也可以指定 -length 進行定長比較。
string index $str index 返回索引的字符
string range $str index1 index2 返回指定索引范圍為 index1~index2 內的字符串
string replace $str index1 index2 newStr 將索引范圍為 index1~index2 的字符串替換為 newStr,如果沒有指定新字符串則完成刪除功能
string mapcharMapstr 根據字典型變量 charMap 鍵值對的關系,將 str 中的字符作為鍵進行映射
string length $str 返回字符串的字符長度
string repeat $str times 字符串重復多次組成新的字符串變量
string reverse $str 返回與字符串 str 順序相反的字符串
string tolower $str 返回小寫字符
string toupper $str 返回大寫字符
string firststr1str2 返回 str1 在 str2 中第一次出現的位置索引
string laststr1str2 返回 str1 在 str2 中最后一次出現的位置索引
string trim $str chars 刪除字符串兩端的 chars,默認刪除空白
string trimleft $str chars 刪除字符串左側開始的 chars,默認刪除空白
string trimright $str chars 刪除字符串右側開始的 chars,默認是空白
string wordend $str index 返回在索引位置的單詞之后的字符索引位置
string wordstart $str index 返回在索引位置的單詞中第一個字符的索引位置
string is class $str 判斷字符串的類型
string match pattern str 字符串匹配模式,匹配成功則返回 1

字符串操作舉例

舉例:string compare/equal

TCL 中使用 string equal 進行字符串是否相等的比較。嚴格相等返回值為 1,否則為 0 。

可選項 -nocase 指定比較時不區分大小寫,可選項 -length 指定字符串長度進行比較。

set str_ref "abcd"
set str_comp1 "abce"
set str_comp2 "ABCd"
# 以下兩種方式不等
puts [string equal $str_ref $str_comp1]
puts [string equal $str_ref $str_comp2]
#以下兩種方式相等
puts [string equal -length 3 $str_ref $str_comp1]
puts [string equal -nocase $str_ref $str_comp2]
#% 0
#% 0
#% 1
#% 1

string compare 不僅能比較是否相等,還能比較 2 個字符串大小(按照 ASCII 字符排列)。當兩個字符串間的關系為大于、等于、小于時,返回值分別為 1、0、-1。

也可以使用 -nocase、-length 選項。

set str_ref "abcd"
set str_comp1 "abce"
set str_comp2 "ABCd"
# abcd < abce
puts [string compare $str_ref $str_comp1]
# abcd > ABCd
puts [string compare $str_ref $str_comp2]
# 以下相等
puts [string compare -length 3 $str_ref $str_comp1]
puts [string compare -nocase $str_ref $str_comp2]


#% -1
#% 1
#% 0
#% 0

舉例:string index/range

string index 用于訪問字符串中的單個字符,string range 用于訪問字符串中指定范圍內的多個字符。

set str "Forever young."
puts "3rd char: [string index $str 3]"
puts "3-6 char: [string range $str 3 6]"
#% 3rd char: e
#% 3-6 char: ever

舉例:string replace/map

string replace 可以將指定索引范圍內的字符串替換為新的字符串。

如果沒有指定新字符串則完成刪除功能。

set str "Forever young."
# 替換 young -> happy , young -> sad
puts "[string replace $str 8 end-1 "happy"]"
puts "[string replace $str 8 end-1 "sad"]"
# 刪除 young
puts "[string replace $str 8 end-1]"
#% Forever happy.
#% Forever sad.
#% Forever .

string map 根據指定字典型變量中鍵值對的關系,將相應的字符串進行映射替換。原字符串中的字符相當于字典中的鍵,新字符串替換后的值為字典中鍵對應的值。

替換時按照字典型變量中鍵出現的順序進行映射替換,剩余字符串中沒有與鍵匹配的字符,則保留原字符(串)。

set str "Forever young. Bless you."
set char_map [dict create Forever 22 \\
                          " " 33 \\
                          "young" 44 ]
puts "[string map $char_map $str]"
#%  223344.33Bless33you.

舉例:string length/repeat/reverse

string length/repeat/reverse 具有計算長度、重復字符串、反轉字符串的功能。

set str "Hello, Zhihua"
puts [string repeat $str 2]
puts [string length $str]
puts [string reverse $str]
#% Hello, ZhihuaHello, Zhihua
#% 13
#% auhihZ ,olleH

舉例:string tolower/toupper

string tolower/toupper 分別返回字符串的小寫、大寫格式。

puts [string tolower AbcD]
puts [string toupper AbcD]


#% abcd
#% ABCD

舉例:string first/last

string first **str1 **str2 startindex

string first 用于查找第一個字符串在第二個字符串中的位置,并返回第一個匹配的索引值。命令結尾還可以指定開始查找的索引,即查找范圍為 str2 索引之后的字符串。

string last **str1 **str2 endindex

string last 用于查找第一個字符串在第二個字符串中的位置,并返回最后一個匹配的索引值。命令結尾還可以指定結束查找的索引,即查找范圍為 str2 索引之前的字符串。

#index     2    7    12  
set str "Abab 3cab acabb"
puts [string first ab $str]
puts [string first ab $str 5]
puts [string last ab $str]
puts [string last ab $str 10]


#% 2
#% 7
#% 12
#% 7

舉例:string trim/trimleft/trimright

string trim/trimleft/trimright $str chars

根據指定的多個字符 chars,string trim/trimleft/trimright 依次刪除字符串 $str 兩端、左側、右側的字符。只要字符串兩端、左側、右側的字符存在于指定的 chars 中,則會依次被刪除,直至遇到不存在與 chars 中的字符。

如果沒有指定 chars 選項,則默認刪除空格、制表符、換行符。

set str " abccICbcc "
# 默認刪除兩邊空格
puts [string trim $str]
# 指定 chars 時不要忘記輸入空格
puts [string trim $str "abc "]
# 默認刪除左邊空格
puts [string trimleft $str]
# 指定 chars 時沒有輸入空格,則字符串不會改變
puts [string trimleft $str "abc"]
# 默認刪除右邊空格
puts [string trimright $str]
puts [string trimright $str "bca "]
#% abccICbcc
#% IC
#% abccICbcc 
#%  abccICbcc 
#%  abccICbcc
#%  abccIC

舉例:string wordend/wordstart

string wordend 返回字符串中包含索引字符的單詞的下一個單詞的首個字符的索引。

string wordstart 返回字符串中包含索引字符的單詞的首個字符的索引。

此命令下,任何連續的字符數字或者下劃線,或者除此之外的單個字符,例如空格,都被視為一個單詞。

下列示例中,變量有 3 個單詞:For_ever、空格、Young。

# index  0123456789
set str "For_ever Young"
puts [string wordend $str 2]
puts [string wordend $str 8]
puts [string wordend $str 10]
puts [string wordstart $str 2]
puts [string wordstart $str 8]
puts [string wordstart $str 10]


#% 8
#% 9
#% 14
#% 0
#% 8
#% 9

舉例:string is

string is class -strict -failIndex var $str

string is 命令用于判斷字符串的類型,如果字符串符合 TCL 中指定字符類型 ,則返回值為1 ,否則為 0。

當指定 -strict 選項時,對于所有 class 字符類型,當字符串為空時返回值為 1。如果不指定,遇到空字符串時返回值為 1 。

當指定了 -failIndex var 選項時,該命令會把第一個不符合 class 類別字符的索引保存到變量 var 中。如果返回值為1,則不進行賦值操作。但是當 class 為 boolean、ture 或 false 類型時,如果返回值為 0 ,var 會被設置為0。

這里簡單介紹下 Unicore 碼:統一碼,又稱單一碼(Unicode),它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。而大多數計算機采用 ASCII 碼是表示所有大小寫字母、數字、標點符號和控制字符的 7 位編碼方案。統一碼包含 128 個 ASCII 碼字符。

TCL 字符串系統類型 class 取值如下。

alpha Unicore 字母 double 雙精度浮點型,可以包含空格
alnum Unicore 字母或數字 list 有效的列表結構
ascii ASCII 字符 boolean 布爾型值
lower Unicore 小寫字母 true 布爾型值:真
upper Unicore 大寫字母 false 布爾型值:假
wordchar 字母數字或連接符 control Unicore 控制字符
digit Unicore 數字 graph 除空格外的 Unicore 打印字符
xdigit 十六進制字符 print 包含空格的 Unicore 打印字符
integer 32 位整數型 punct Unicore 的標點符號
wideinteger 64 位長整數型 space Unicore 的空白字符

現在對各種 class 類型進行舉例說明,返回值均為 1 。

string is alpha "?éα?以及漢字"
string is alnum "1234?éα?以及漢字"
string is ascii "Forever"
string is lower "forever"
string is upper "FOREVER"
string is wordchar "Stu_No3"
string is digit 1234
string is xdigit "\\x33"
string is integer 1234
string is wideinteger 1234


string is double 1e-3
string is list {Forever Young .}
string is boolean yes
string is true 1
string is false false
string is control \\n
string is graph "£±2"
string is print " £±2 "
string is punct "。\\/"
string is space "    "

下面為返回值均為 0 的幾個簡單示例。

string is alpha "1234?éα?以及漢字"
string is ascii "。"
string is lower "Forever"
string is digit 123.45
string is punct " 。\\/ "
string is space "a b c"

下面是 -strict 選項的簡單示例。

string is alpha ""
string is integer ""
string is alpha -strict ""
string is integer -strict ""


#% 1
#% 1
#% 0
#% 0

下面是 -failindex 選項的簡單示例。

set str "MaryIs32."
string is alpha -failindex index $str
puts "Failed index: $index"
puts "Failed char: [string index $str $index]"


Failed index: 6
Failed char: 3

字符串匹配(string match)將在下一節說明。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCL
    TCL
    +關注

    關注

    10

    文章

    1715

    瀏覽量

    88477
  • 字符串
    +關注

    關注

    1

    文章

    577

    瀏覽量

    20488
  • 命令
    +關注

    關注

    5

    文章

    678

    瀏覽量

    21987
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4719
收藏 人收藏

    評論

    相關推薦

    STRING VHDL程序

    STRING VHDL程序,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-11 11:55 ?0次下載

    Tcl學習:string compare命令對字符串的比較

    string equal則是對兩個字符串進行簡單的比較,如兩者嚴格相同,則返回1,否則返回0(與stringcompare的返回值是不同的)。
    的頭像 發表于 09-23 10:10 ?8928次閱讀

    MATLAB的常用命令合集詳細資料免費下載

    本文檔的主要內容詳細介紹的是MATLAB的常用命令合集詳細資料免費下載,匯集MATLAB命令,快速查詢MATLAB命令含義,適合初學者。
    發表于 11-09 08:00 ?16次下載
    MATLAB的常用<b class='flag-5'>命令</b><b class='flag-5'>合集</b>詳細資料免費下載

    linux的History命令代碼的詳細資料合集免費下載

    本文檔的主要內容詳細介紹的是linux的History命令代碼的詳細資料合集免費下載。
    發表于 11-19 08:00 ?2次下載

    Vim的命令合集

    命令歷史以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令。
    的頭像 發表于 02-03 17:26 ?2586次閱讀

    176條DevOps人員常用的linux命令速查表資料合集

    本文檔詳細介紹的是176條DevOps人員常用的linux命令速查表資料合集
    的頭像 發表于 03-30 10:17 ?3914次閱讀

    AUTO CAD命令的中英文對照查詢表資料合集免費下載

    本文檔的主要內容詳細介紹的是AUTO CAD命令的中英文對照查詢表資料合集免費下載。
    發表于 04-28 08:00 ?3次下載
    AUTO CAD<b class='flag-5'>命令</b>的中英文對照查詢表資料<b class='flag-5'>合集</b>免費下載

    紅帽linux命令合集免費下載

    本文檔的主要內容詳細介紹的是紅帽linux命令合集免費下載。
    發表于 06-26 16:27 ?4次下載

    Linux的命令大全合集免費下載

    本文檔的主要內容詳細介紹的是Linux的命令大全合集免費下載。
    發表于 08-13 08:00 ?5次下載
    Linux的<b class='flag-5'>命令</b>大全<b class='flag-5'>合集</b>免費下載

    MATLAB仿真命令集的資料合集免費下載

    本文檔的主要內容詳細介紹的是MATLAB仿真命令集的資料合集免費下載。
    發表于 09-11 17:04 ?15次下載
    MATLAB仿真<b class='flag-5'>命令</b>集的資料<b class='flag-5'>合集</b>免費下載

    CAD的快捷鍵命令合集免費下載

    本文檔的主要內容詳細介紹的是CAD的快捷鍵命令合集免費下載。
    發表于 12-16 08:00 ?4次下載
    CAD的快捷鍵<b class='flag-5'>命令</b><b class='flag-5'>合集</b>免費下載

    如何使用C語言實現動態擴容的string

    眾所周知,C++ 中的string使用比較方便,關于C++ 中的string源碼實現可以看我的這篇文章:源碼分析C++的string的實現
    的頭像 發表于 10-25 10:59 ?1993次閱讀

    u-boot常用的命令合集

    u-boot常用的命令合集
    發表于 02-11 09:50 ?2次下載

    UTF8String是如何編碼的?

    UniversalString和UTF8String 都支持完全相同的字符集,前64K 字符都是BMPString 中的字符集。請注意,BMPString 的前128 個字符與IA5String
    的頭像 發表于 08-26 09:55 ?2052次閱讀
    UTF8<b class='flag-5'>String</b>是如何編碼的?

    bigdecimal轉string類型

    將BigDecimal轉換為String類型是在Java編程中常常遇到的一個問題。BigDecimal是Java中用于表示高精度十進制數的類,而String則是用于表示文本字符串的數據類型。在某些
    的頭像 發表于 11-30 11:09 ?6314次閱讀