0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

字符串的相关知识

CHANBAEK 来源:数字IC与好好生活的两居室 作者:除夕之夜啊 2023-03-29 11:41 次阅读

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

    文章

    7015

    浏览量

    89002
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1723

    浏览量

    88590
  • 字符串
    +关注

    关注

    1

    文章

    579

    浏览量

    20512
  • 命令
    +关注

    关注

    5

    文章

    684

    浏览量

    22019
收藏 人收藏

    评论

    相关推荐

    C++字符串string

    string是C++编程语言中的字符串。在C++中字符串处理可以使用c语言字符串形式char *,也可以使用string类格式。
    的头像 发表于 07-10 00:26 1282次阅读
    C++<b class='flag-5'>字符串</b>string

    字符串的表示

    字符串的表示  随着计算机在文字处理与信息管理中的广泛应用, 字符串已成为最常用的数据类型之一, 许多计算机中都提供字符串操作功能, 一些计算机还给出读写字
    发表于 10-13 17:11 3067次阅读
    <b class='flag-5'>字符串</b>的表示

    字符串的输入输出及相关函数

    字符串的输入输出及相关函数
    的头像 发表于 09-14 11:52 6092次阅读
    <b class='flag-5'>字符串</b>的输入输出及<b class='flag-5'>相关</b>函数

    LabVIEW的常用字符串操作教程免费下载

    字符串操作与信息的保存和显示密不可分,而字符串操作运用也是LabⅥEW程序设计的一个难点,因此熟练使用字符串操作函数是使用LabⅥEW进行编程所必备的能力之字符串函数选板位于函数面板:
    发表于 08-21 14:51 26次下载
    LabVIEW的常用<b class='flag-5'>字符串</b>操作教程免费下载

    什么是复制字符串?Python如何复制字符串

    连续几篇文章都在写 Python 字符串,这出乎我的意料了。但是,有的问题,不写不行,特别是那种灵机一动想到的问题,最后你发现,很多人根本不懂却又误以为自己懂了。那就继续刨根问底,探究个明白吧
    发表于 11-25 10:32 3017次阅读

    strtok拆分字符串

    大家好,我是惊觉,今天聊聊字符串字符串的使用场景非常之多,人机交互和双机通信都会用到。比如:通过串口向单片机发送指令,以执行操作或配置参数。单片机读取传感器数据,数据格式是字符串。一般GPS数据
    发表于 01-13 15:46 8次下载
    strtok拆分<b class='flag-5'>字符串</b>

    字符串函数重写练习

    字符串函数重写练习:字符串比较、字符串拼接、字符串查找、字符串拷贝、内存比较、内存拷贝、内存初始化、内存比较、二维数组定义及基本使用、位运算
    的头像 发表于 05-05 15:02 1996次阅读

    字符串操作

    labview字符串操作
    发表于 06-28 15:09 2次下载

    C语言总结_字符串全方位练习

    C语言字符串全方位练习,涉及知识点:字符串解析、大小写判断、字符串插入、字符串删除、字符串排序、
    的头像 发表于 08-14 09:41 1497次阅读

    C语言_字符串与指针的练习

    这篇文章涉及到字符串与指针知识点的相关练习。浮点数与字符串互转、字符串拷贝、字符串比较、指针交换
    的头像 发表于 08-14 09:51 1490次阅读

    一文详解JavaScript字符串

    JavaScript字符串是原始值。此外,字符串是不可变的。这意味着如果你修改一个字符串,你总是会得到一个新的字符串。原始字符串不会被改变。
    的头像 发表于 12-08 16:36 1206次阅读

    python字符串有哪些特定方法

    python字符串序列操作也适用于列表和元组。 python字符串还有独有方法,即字符串对象的函数,其他对象不可调用,只有字符串对象可调用。
    的头像 发表于 02-23 15:02 709次阅读

    C语言字符串的引用方式

    在C语言程序中,字符串是存放在字符数组中的。 2. 用字符数组存放一个字符串,可以通过数组名和下标引用字符串中的一个
    的头像 发表于 03-10 14:57 1934次阅读

    labview扫描字符串怎么用

    介绍如何在 LabVIEW 中使用扫描字符串以及相关的技巧和注意事项。 字符串是 LabVIEW 中的一种基本数据类型,表示一系列字符的序列。扫描
    的头像 发表于 12-29 10:12 2014次阅读

    labview字符串如何转换为16进制字符串

    在LabVIEW中,将字符串转换为16进制字符串是一个常见的需求,尤其是在处理数据通信和硬件接口时。LabVIEW提供了多种方法来实现这一转换,包括使用内置函数、编写VI(Virtual
    的头像 发表于 09-04 15:54 2435次阅读