clisp语言中的字符

发布: 2008-07-23 07:55

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 设置字符的控制位




原文: http://qtchina.tk/?q=node/198

Powered by zexport