ASCII(美国信息交换标准代码)是一种字符编码标准,用于将特定的数字值与字符进行对应。
ASCII码表
ASCII码表包含了128个字符,包括:
- 控制字符(如换行符
\n,回车符\r,制表符\t等) - 可打印字符(如大写字母
A-Z,小写字母a-z,数字0-9,以及一些特殊符号)
C++中的ASCII操作
在C++中,你可以使用字符的ASCII值来执行各种操作,例如:
-
字符与ASCII值的转换:
- 将字符转换为对应的ASCII值:
int value = 'A';(结果为65) - 将ASCII值转换为对应的字符:
char ch = 65;(结果为’A’)
- 将字符转换为对应的ASCII值:
-
字符比较:
- 比较两个字符:
if ('A' < 'B')
- 比较两个字符:
-
字符运算:
- 计算字符之间的差值:
int diff = 'B' - 'A';(结果为1) - 计算字符的ASCII值:
int asciiValue = static_cast<int>(ch);
- 计算字符之间的差值:
-
字符数组与字符串:
- 字符数组和字符串字面量都是以空字符(ASCII值为0)结尾的字符序列。
示例代码
#include <iostream>
int main() {
// 打印字符及其ASCII值
char ch = 'A';
std::cout << "Character: " << ch << ", ASCII Value: " << static_cast<int>(ch) << std::endl;
// 计算字符之间的差值
int diff = 'B' - 'A';
std::cout << "Difference between 'B' and 'A': " << diff << std::endl;
// 检查是否为大写字母
if (ch >= 'A' && ch <= 'Z') {
std::cout << ch << " is an uppercase letter." << std::endl;
}
return 0;
}
注意事项
- 在C++中,字符实际上是以整数形式存储的,因此可以直接进行算术运算。
- ASCII码表只包含128个字符,对于需要表示更多字符(如国际字符)的场景,可以使用其他编码标准,如UTF-8或UTF-16。
- 在处理字符时,需要注意字符的编码和平台差异,特别是在跨平台开发时。
ASCII表包含了128个字符,分为控制字符和可打印字符。以下是ASCII表的完整列表:
ascii表
控制字符(0-31 和 127)
| 十进制 | 十六进制 | 符号/名称 |
|---|---|---|
| 0 | 00 | NUL (Null) |
| 1 | 01 | SOH (Start of Header) |
| 2 | 02 | STX (Start of Text) |
| 3 | 03 | ETX (End of Text) |
| 4 | 04 | EOT (End of Transmission) |
| 5 | 05 | ENQ (Enquiry) |
| 6 | 06 | ACK (Acknowledgment) |
| 7 | 07 | BEL (Bell) |
| 8 | 08 | BS (Backspace) |
| 9 | 09 | HT (Horizontal Tab) |
| 10 | 0A | LF (Line Feed) |
| 11 | 0B | VT (Vertical Tab) |
| 12 | 0C | FF (Form Feed) |
| 13 | 0D | CR (Carriage Return) |
| 14 | 0E | SO (Shift Out) |
| 15 | 0F | SI (Shift In) |
| 16 | 10 | DLE (Data Link Escape) |
| 17 | 11 | DC1 (Device Control 1) |
| 18 | 12 | DC2 (Device Control 2) |
| 19 | 13 | DC3 (Device Control 3) |
| 20 | 14 | DC4 (Device Control 4) |
| 21 | 15 | NAK (Negative Acknowledge) |
| 22 | 16 | SYN (Synchronous Idle) |
| 23 | 17 | ETB (End of Transmission Block) |
| 24 | 18 | CAN (Cancel) |
| 25 | 19 | EM (End of Medium) |
| 26 | 1A | SUB (Substitute) |
| 27 | 1B | ESC (Escape) |
| 28 | 1C | FS (File Separator) |
| 29 | 1D | GS (Group Separator) |
| 30 | 1E | RS (Record Separator) |
| 31 | 1F | US (Unit Separator) |
| 127 | 7F | DEL (Delete) |
可打印字符(32-126)
| 十进制 | 十六进制 | 符号/名称 |
|---|---|---|
| 32 | 20 | SP (Space) |
| 33 | 21 | ! (Exclamation Mark) |
| 34 | 22 | " (Double Quote) |
| 35 | 23 | # (Number Sign) |
| 36 | 24 | $ (Dollar Sign) |
| 37 | 25 | % (Percent) |
| 38 | 26 | & (Ampersand) |
| 39 | 27 | ’ (Single Quote) |
| 40 | 28 | ( (Left Parenthesis) |
| 41 | 29 | ) (Right Parenthesis) |
| 42 | 2A | * (Asterisk) |
| 43 | 2B | + (Plus Sign) |
| 44 | 2C | , (Comma) |
| 45 | 2D | - (Minus Sign) |
| 46 | 2E | . (Period) |
| 47 | 2F | / (Slash) |
| 48 | 30 | 0 |
| 49 | 31 | 1 |
| 50 | 32 | 2 |
| 51 | 33 | 3 |
| 52 | 34 | 4 |
| 53 | 35 | 5 |
| 54 | 36 | 6 |
| 55 | 37 | 7 |
| 56 | 38 | 8 |
| 57 | 39 | 9 |
| 58 | 3A | : (Colon) |
| 59 | 3B | ; (Semicolon) |
| 60 | 3C | < (Less Than) |
| 61 | 3D | = (Equals) |
| 62 | 3E | > (Greater Than) |
| 63 | 3F | ? (Question Mark) |
| 64 | 40 | @ (At Sign) |
| 65-90 | 41-5A | A-Z (Uppercase Letters) |
| 91 | 5B | [ (Left Square Bracket) |
| 92 | 5C | \ (Backslash) |
| 93 | 5D | ] (Right Square Bracket) |
| 94 | 5E | ^ (Caret) |
| 95 | 5F | _ (Underscore) |
| 96 | 60 | ` (Grave Accent) |
| 97-122 | 61-7A | a-z (Lowercase Letters) |
| 123 | 7B | { (Left Curly Bracket) |
| 124 | 7C | |
| 125 | 7D | } (Right Curly Bracket) |
| 126 | 7E | ~ (Tilde) |
T145533
打印ASCII码
- 题目描述
输入一个除空格以外的可见字符(保证在函数
scanf中可使用格式说明符%c读入),输出其 ASCII 码。
- 输入格式
一个除空格以外的可见字符。
- 输出格式
一个十进制整数,即该字符的 ASCII 码。
- 样例输入
A
- 样例输出
65
代码
#include <iostream>
int main() {
char ch;
std::cin>>ch;
//std::cout << static_cast<int>(ch) << std::endl;
std::cout << (int)ch << std::endl;
return 0;
}
- ascii码转成字符打印输出
int a=97;
cout<<(char)a<<endl;
3384

被折叠的 条评论
为什么被折叠?



