在TSL语言中,字符串常量的表达方式是采用单引号或者双引号括起来。例如123表示数值为123的整数,而"123"则表示内容为123的的字符串,是两种不同的数据类型。由于字符串中可能会包括一些特殊的字符,例如回车换行以及引号,就采用\符进行转义,例如\r表示回车字符,\n表示换行字符。采用\符进行转义后,字符串里的\字符就得用\\来表达了。例如'ab\\r\'d\r\n'表示的字符串内容是带回车换行结尾的ab\r'd字符串。
\转义的几个特殊字符为:
\\表示\r表示回车
\n表示换行
\t表示制表符Tab
\0表示ASCII值为0的字符
\跟其他任何字符都为该字符的本身
因此,\'就是',\"就是"
字符串中引号的另一种表示方法
TSL语言还支持在字符串常量中表达'或者"的另外的方式,例如字符串常量表达如下:
'This"s a book.'
这个表示字符串的内容为This's a book.
在字符串常量中,连续的两个与字符串开始的引号相同的引号可代表一个引号。
也就是说,"This""s a book."代表This"s a book.,但是"This''s a book."则代表的是This''s a book.
#号字符表达方式
有时候,程序中需要表达特殊的难以直接输入的ASCII符,例如笑脸符的ASCII值为1,要表达的时候就用#1就可以表达了,而同样的,回车符的ASCII码值为13,可以用#13来表达,而字符0的ASCII码值为48,则#48可以表达数字字符0。
#号字符表达方式可以和引号的字符串表达方式串起来表达字符串常量,例如:'The first line,Hello!'#13#10'The second line,Yeah!'#13#10'The End.'描述的字符串内容为:
The first line,Hello!
The seond line,Yeah!
The End.
其他计算机语言的字符串表达方式
事实上,各种程序语言的字符串表达方式大同小异,TSL语言的字符串表达方式本身也是吸纳了多种程序开发语言的优点的情况下设计出来的。
C语言的字符串常量表达方式为双引号将内容括起来,与TSL类似,特殊字符采用\转义,但是更为复杂的是,C语言支持\0x0d这样的转义,也就是说允许\后用ASCII值来转义,0x表示16进制,0x0d就是十进制的13。
Pascal语言的字符串常量是以单引号将内容括起来,并且没有转义符,但是支持连续的’号表达’号字符,这和TSL语言类似。与TSL类似的还有Pascal语言同样还支持#号字符表达方式,同样支持与TSL类似的字符串连结方式。
对于汇编语言而言,字符串常量既可以采用单引号括起来,还可以直接写字节码。由于存在一些特殊的计算机机器指令,因此许多语言的字符串都采用了以ASCII码0作为字符串的结尾。但由于这样的字符串无法表达ASCII码0的本身,所以也有的语言采用在字符串前边加入了字符串的长度。由于字符串长度的记载的字节的大小不同,假如是单个字节的,叫ShortString,只支持最长255的长度,而如果采用双字来作为长度,那么就可以表达最大长度为4G的字符串了。
对于TSL语言的字符串类型,采用的是有长度信息的字符串,所以可以支持存在ASCII码0的字符的字符串,并且理论上,支持长度为4G的串,实际上由于内存空间的限制,能表达的字符串会小很多。
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。
参考:
字符串运算章节。