clisp语言中的字符
1. 介绍
函数:char-code 计算一个字符的ASCII值。
函数:code-char 根据ASCII值构造一个字符。
char-code 函数的返回值范围:
binaries built without UNICODE support with UNICODE support
CHAR-CODE-LIMIT 2^8 = 256 17 * 216 = 1114112
其中CHAR-CODE-LIMIT 变量为系统定义,表示可能的ASCII极限值,但不包括这个值。
内置数据类型 EXT:STRING-CHAR 和 BASE-CHAR 都等价于 CHARACTER。
函数 EXT:CHAR-WIDTH 计算字符的宽度,即占用的字节数。
对于不占用空间的字符,返回值为 0 (像控制字符及其组合)
对于东亚又字节字符,返回值为 2
其他所有字符,返回值皆为 1
2. 特殊字符说明
标准字符及代码
character code
#Space #x20
#Newline #x0A
准标准字符及代码
character code
#Backspace #x08
#Tab #x09
#Linefeed #x0A
#Page #x0C
#Return #x0D
附加的命名字符及代码
character code
#Null #x00
#Bell #x07
#Escape #x1B
附加的从 #x00 到 #x1F 的字符 ASCII码
#^@ #x00
#^A … #^Z #x01 … #x1A
#^[ #x1B
#^ #x1C
#^] #x1D
#^^ #x1E
#^_ #x1F
3. 字符大小写
函数 EXT:CHAR-INVERTCASE 改变字符的大小写,即将大写字符变为小写,或者将小写转变为大写。
CL> (char-invertcase #a)
#A
CL> (char-invertcase #A)
#a
函数 CHAR-UPCASE 将字符转变为大写字符。如果参数为大写,则直接返回参数。
函数 CHAR-DOWNCASE 将字符转变为小写字符。如果参数为小写,则直接返回返回。
与 CHAR-INVERTCASE 对应的字符串操作函数为: STRING-INVERTCASE 和 NSTRING-INVERTCASE
CL> (string-invertcase "abcd")
"ABCD"
CL> (string-invertcase "AbCd")
"aBcD"
4. 字符的大小顺序,字符排序规则
字符是通过其 UNICODE 代码值排序的。
字符大小比较函数 CHAR-EQUAL CHAR-NOT-EQUAL, CHAR-LESSP, CHAR-GREATERP, CHAR-NOT-GREATERP, CHAR-NOT-LESSP
这几个函数是不考虑字符的控制位的。
5. 回车与换行字符的输入与输出
回车符、换行符 是平台相关的,在各种不同的平台表现不尽相同。
win32 {
写的时候 换行字符#Newline变成CR/LF
读的时候,CR/LF转变为一个字符#Newline
}
如果要区分CR/LF,需要使用函数 READ-BYTE
函数 READ-LINE 从文件或者流中读取一行,返回的字符串包括换行符 #Newline
6. 字符属性
控制位属性:
系统变量 EXT:CHAR-BIT-LIMIT = 16
属性位有
key value code
:CONTROL EXT:CHAR-CONTROL-BIT 1
:META EXT:CHAR-META-BIT 2
:SUPER EXT:CHAR-SUPER-BIT 4
:HYPER EXT:CHAR-HYPER-BIT 8
函数 EXT:CHAR-BIT char name 返回字符的控制位。
函数 EXT:MAKE-CHAR char [bits] 构造带控制位的字符
函数 EXT:SET-CHAR-BIT char name new-value 设置字符的控制位
posted on 2010-06-12 14:33 drswinghead 阅读(115) 评论(0) 编辑 收藏 举报