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

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

3天内不再提示

Tcl学习之如何获取字符?

电子工程师 来源:未知 作者:工程师李察 2018-09-23 10:12 次阅读

在Tcl中并不需要显示地指定变量的数据类型,因为Tcl本身将所有的变量值视为字符串,并将他们作为字符串来保存,可见,字符串在Tcl中扮演着举足轻重的角色。

Tcl本身提供了很多字符串操作命令,而且很多对字符串操作的命令是以string开头的。例如,string index可获取指定位置的字符,而string range可获取指定区间的字符。这里就要提到Tcl中的字符串索引。如下图所示,对于字符串“Hello World”,索引由0开始,对应字符H,索引end对应字符d(Hello和World之间的空格也是占一个位置的)。

Tcl学习之如何获取字符?

借助string index命令,可返回指定字符串在指定索引处的值。string index需要两个参数,第一个参数是字符串,第二个参数是相应的索引,如下图所示。

如果指定索引不在字符串索引值的范围内,例如设置所引值为11,则返回空(不是空格),如下图所示。

在索引中使用end时,可以使用数学表达式,但是该数学表达式中不能有空格,如下图所示。

如果要返回指定区间的字符,就要用到string range命令。该命令需要三个参数,第一个参数为字符串,第二个参数是第一个索引,第三个参数是第二个索引。如下图所示,同样地,在使用end时,表达式中不能有空格。

另外,string range中的两个索引,前者应小于或等于后者,如果大于后者,则返回空,如下图所示,如果等于后者,则与string index命令一致。

如果要获取字符串的长度,可借助string length命令。如下图所示。

结论:

-Tcl中所有变量值均被视为字符串

-借助两个命令string index和string range可获取字符

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1657

    浏览量

    87927
  • 字符
    +关注

    关注

    0

    文章

    229

    浏览量

    24885
  • 字符串
    +关注

    关注

    1

    文章

    548

    浏览量

    20105

原文标题:Tcl的字符串操作:获取字符

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    采集的数据要进行截取字符串处理,怎么设置帧头

    采集的数据要进行截取字符串处理,怎么设置帧头,比如采集到一串AA0010EC6A664300000000000000008A52484222,AA是帧头,现在要截取AA0010之后的字符串,采集
    发表于 08-18 11:47

    如何提取字符串中某几个位置的元素

    如何提取字符串中某几个位置的元素,如字符串AA 01 08 D6 DF FF,我想提取其中的08和D6,请问该如何实现?或者说如何提取一维数组中某几个位置的元素,该如何实现啊,请指导的给个思路。
    发表于 10-28 18:48

    labview截取字符串时为什么不能显示出字符串中的汉字

    我要输出数量字符串中的最后一个字符,使用截取字符串时输出的最后一个字符是数字或字母时子字符串可以正常显示出该
    发表于 05-05 11:11

    labview中使用visa和u***-485通讯中截取字符串函数使用问题

    接收数据同时使用截取字符串函数出了问题,发送和接收数据正确,截取到的数据有时出现错误
    发表于 07-29 15:16

    采集数据经过截取字符串实时数据采集问题,求指教

    利用截取字符串函数截取数据信息,发现有相当大的延迟,大概几秒钟的间隔才能实现新的字符串的截取,这样的话会出现对采集信息的遗漏,如何实现数据的实时截取?求大神指教问题如图,上面的压力值是读到的数据
    发表于 10-28 17:01

    labview从一个特定的字符开始读取字符

    ,制表符后面是一个“-0.481754”,后面接着是一个制表符,再接着是一个“0.876307”,我怎样才能读取第一个制表符与第二个制表符之间的数据?有人可能说用截取字符串?不行!因为
    发表于 01-16 15:35

    LABVIEW中使用tdms存取字符串数组的问题

    出来的数据类型是波形,提取波形信息后没有办法直接索引连接字符串类型的输出,究竟应该怎么用TDMS存取字符串类型的数据呢?
    发表于 08-15 17:26

    如何从输出缓冲区获取字符串到excel文件

    什么建议我如何从输出缓冲区获取字符串到excel文件(数组)?我附加了我的vi,生成的文件包含无意义的数据。编辑:funkytuqe于2012年6月27日下午2:37 以上来自于谷歌翻译 以下为原文
    发表于 03-26 15:21

    Labview之截取字符

    Labview之截取字符串,很好的Labview资料,快来下载学习吧。
    发表于 04-19 10:23 0次下载

    学习Tcl来这里:字符串匹配

    这里可以看到[a-z0-9]和[a-z][0-9]是不同的,前者匹配一个字符,后者匹配两个字符,其种一个为字母,另一个为数字,所以字符串9s与[a-z0-9]*匹配,但与[a-z][0-9]*不匹配。这里模式
    的头像 发表于 09-21 11:14 5260次阅读

    取字符串的C语言程序免费下载

    本文档的主要内容详细介绍的是读取字符串的C语言程序免费下载。
    发表于 04-11 17:18 10次下载
    读<b class='flag-5'>取字符</b>串的C语言程序免费下载

    西门子PLC中如何读取字符里数?

    我们会用PC给西门子PLC发送几个字符,我们如何读取字符呢? 我们先要进行一个BCD转2进制的转换,然后再运用减法取出我们需要的数 1.将字符存储的字节转存到字里 MOVE (分配值)通过启用EN输入来激活。在IN输入端指定的值
    的头像 发表于 01-02 11:09 6146次阅读
    西门子PLC中如何读<b class='flag-5'>取字符</b>里数?

    关于python Crypto的知识整理

    直接获取字符串的最后一个字符,转换为int即为补位的数, 然后,真实 = 原始字符串长度 - 补位的数。
    的头像 发表于 08-19 18:02 3988次阅读

    【技巧】将gettimeofday获取可显示的字符串时间?

    【Linux编程】如何将gettimeofday获取的时间信息转换成可显示的字符串时间?
    的头像 发表于 08-31 13:13 941次阅读
    【技巧】将gettimeofday<b class='flag-5'>获取</b>可显示的<b class='flag-5'>字符</b>串时间?

    如何截取字符串中的字符

    2 方法 .当字符串中有特定的分隔符时,可以使用split()方法,非常简便。 public class Test01 { public static void main
    的头像 发表于 02-24 10:36 532次阅读