C 语言字符集2024年8月28日 | 阅读 8 分钟 引言字符集 是程序可以在各种上下文中使用的允许字符的集合。在本文中,我们回顾了字符编码的历史。在这里,我们还讨论了称为EBCDIC的历史编码系统、当前的编码标准 Unicode以及ASCII。 字符集类型通常,C 语言中有两种字符集。 源字符集 (SCS)在预处理之前,SCS用于将源代码解析为内部表示。空白字符和基本字符集包含在此包中。它是可用于创建源代码的符号的集合。C 预处理器 (CPP) 的初始阶段是在预处理阶段之前将源代码的编码转换为源字符集 (SCS)。 执行字符集 (ECS)ECS 中存储了字符字符串的常量。此集包括控制字符、转义序列和基本字符集。它是正在使用的程序可以识别的字符集。在预处理阶段之后,CPP 将字符和字符串常量编码转换为执行字符集 (ECS)。 C 语言中实用函数的用法也用于描述不同类型的字符集。 在CPP 中,源字符集和执行字符集默认都使用UTF-8 编码。以下编译器标志允许用户更改它们。 -finput-charset 用于设置 SCS。 -fexec-charset 用于设置 ECS。 基本字符集字符集中的源和方法字符很少共享。基本字符集是指标准字符的集合。下面我们详细讨论一下。 字母 它包含大写和小写字母。小写 ASCII 字符的范围是[97, 122],大写 ASCII 字符的范围是[65, 90]。示例: A、B、a、b 等。 大写和小写字符之间的差异很小。 实用函数 isalpha、islower 和 isupper 用于确定字符是大写、小写还是字母。使用 tolower 和 toupper 将字母转换为适当的大小写。 数字 它包含0 到9 的数字(含)。ASCII 数字的范围是[48, 57]。示例: 0、1、2 等。 实用函数isdigit 函数用于确定提供的字符是否为数字。isalnum 函数用于确定字符是否为字母数字字符。 标点符号/特殊字符 默认 C 语言环境将以下字符归类为标点符号。 实用函数 ispunct 函数用于确定字符是否为标点符号。下表包含每种标点符号的ASCII 码和用法示例。
控制字符集这些字符的ASCII 码范围是0 到 31(含)和第 127 个字符。虽然它们不可见,但它们仍然以多种方式影响程序。与键盘上的退格键(删除前一个字符)不同,(BEL) 字符在打印时可能会产生蜂鸣声或屏幕闪烁,而b (BS) 字符会将光标向后移动一步。 实用函数 iscntrl 函数用于确定字符是否为控制字符。
转义序列 执行字符集包含这些字符。您可以使用反斜杠 (/) 键来区分这些字符。尽管它包含两个或多个字符,但C 预处理器仅将其计为一个。 示例: a、b、t 等。 空白字符 源字符集包含这些字符。它们会影响显示的文本,但视觉上不可见。 实用函数 isspace 函数用于确定字符是否为空格。
示例让我们用一个例子来打印所有字符 输出 | Character | ASCII | Type | | :-------: | ----: | :---------- | | | 32 | Space | | ! | 33 | Punctuation | | " | 34 | Punctuation | | # | 35 | Punctuation | | $ | 36 | Punctuation | | % | 37 | Punctuation | | &| 38 | Punctuation | | ' | 39 | Punctuation | | ( | 40 | Punctuation | | ) | 41 | Punctuation | | * | 42 | Punctuation | | + | 43 | Punctuation | | , | 44 | Punctuation | | - | 45 | Punctuation | | . | 46 | Punctuation | | / | 47 | Punctuation | | 0 | 48 | Digit | | 1 | 49 | Digit | | 2 | 50 | Digit | | 3 | 51 | Digit | | 4 | 52 | Digit | | 5 | 53 | Digit | | 6 | 54 | Digit | | 7 | 55 | Digit | | 8 | 56 | Digit | | 9 | 57 | Digit | | : | 58 | Punctuation | | ; | 59 | Punctuation | | <| 60 | Punctuation | | = | 61 | Punctuation | | >| 62 | Punctuation | | ? | 63 | Punctuation | | @ | 64 | Punctuation | | A | 65 | Alphabet | | B | 66 | Alphabet | | C | 67 | Alphabet | | D | 68 | Alphabet | | E | 69 | Alphabet | | F | 70 | Alphabet | | G | 71 | Alphabet | | H | 72 | Alphabet | | I | 73 | Alphabet | | J | 74 | Alphabet | | K | 75 | Alphabet | | L | 76 | Alphabet | | M | 77 | Alphabet | | N | 78 | Alphabet | | O | 79 | Alphabet | | P | 80 | Alphabet | | Q | 81 | Alphabet | | R | 82 | Alphabet | | S | 83 | Alphabet | | T | 84 | Alphabet | | U | 85 | Alphabet | | V | 86 | Alphabet | | W | 87 | Alphabet | | X | 88 | Alphabet | | Y | 89 | Alphabet | | Z | 90 | Alphabet | | [ | 91 | Punctuation | | \ | 92 | Punctuation | | ] | 93 | Punctuation | | ^ | 94 | Punctuation | | _ | 95 | Punctuation | | ` | 96 | Punctuation | | a | 97 | Alphabet | | b | 98 | Alphabet | | c | 99 | Alphabet | | d | 100 | Alphabet | | e | 101 | Alphabet | | f | 102 | Alphabet | | g | 103 | Alphabet | | h | 104 | Alphabet | | i | 105 | Alphabet | | j | 106 | Alphabet | | k | 107 | Alphabet | | l | 108 | Alphabet | | m | 109 | Alphabet | | n | 110 | Alphabet | | o | 111 | Alphabet | | p | 112 | Alphabet | | q | 113 | Alphabet | | r | 114 | Alphabet | | s | 115 | Alphabet | | t | 116 | Alphabet | | u | 117 | Alphabet | | v | 118 | Alphabet | | w | 119 | Alphabet | | x | 120 | Alphabet | | y | 121 | Alphabet | | z | 122 | Alphabet | | { | 123 | Punctuation | | | | 124 | Punctuation | | } | 125 | Punctuation | | ~ | 126 | Punctuation | 说明 在此示例中,ctype.h 头文件用于定义 isalpha 和 isdigit 实用函数。因此,我们将其放在顶部。之后,我们从ASCII 码 32 开始循环,因为我们不打印控制字符,因为它们不可见。 我们使用实用函数来确定字符类型。此程序会生成一个格式化的字符Markdown 表格。 结论C 语言中有两种不同的字符集:源字符集 (SCS) 和执行字符集 (ECS)。 在预处理之前,SCS由CPP从源代码创建。CPP 在被转换为ECS之前预处理字符和字符串常量。尽管空格字符看起来是空白的,但它们会影响文本。尽管控制字符在视觉上不可见,但它们可以执行各种任务,例如发出蜂鸣声 (a)、将指针移到左边 (b) 等。 ctype.h 中有许多有用的函数可用于处理字符,例如 isalpha 和 isdigit。 下一主题C 语言数组旋转 |
我们请求您订阅我们的新闻通讯以获取最新更新。