当前位置: C语言 -- 专题 -- 字符集

字符集

字符是用于组织、控制或者表示数据的元素集成员。C语言存在两套字符集:源字符集(source character set)和执行字符集(execution character set)。源字符集是写入源文件的字符集;执行字符集是执行环境中解释的字符集。这两套字符集又可以进一步分为基本字符集(basic character set)和由0个或者多个特定语言环境成员(该成员称为扩展字符(extended characters),扩展字符不是基本字符集成员。)组成的字符集。基本字符集和扩展字符统称为扩展字符集(extended character set)。


无论基本源字符集还是基本执行字符集,都应包含以下成员:

1、26个大写拉丁字母

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

2、26个小写拉丁字母

a b c d e f g h i j k l m n o p q r s t u v w x y z

3、10个十进制数字

0 1 2 3 4 5 6 7 8 9

4、29个图形字符

! " # % & ' ( ) * + , - . / :

; < = > ? [ \ ] ^ _ { | } ~

5、空格符和控制字符(水平制表符垂直制表符换页符。)


无论是源字符集还是执行字符集,基本字符集中的字符都使用一个字节表示;十进制数字列表中每个0后面的字符值应比前一个字符大1

源文件中应存在某种方式表示每个文本行的末尾;ISO/IEC 9899:2018标准将这样的行尾指示符视为单个换行符。基本执行字符集中应存在表示警告退格回车换行的控制字符。执行字符集的成员值由实现定义。

字符常量或者字符串字面量中,执行字符集的成员应由源字符集的对应成员或者转义序列来表示。一个字节所有位都为0,称为空字符(null character)。基本执行字符集应包含空字符;空字符用于终止字符串。


如果在源文件中出现其它字符(如果出现在标识符、字符常量、字符串字面量、头文件名、注释或者永远不会转换为标记预处理标记中除外。),其行为是未定义的。

大小写字母的定义如上所示,ISO/IEC 9899:2018标准并未包含其它字母表中的其它字符。

通用字符名提供了一种命名其它字符的方法。