在 C++ 中,char
关键字用于声明字符类型的变量。字符变量只能存储单个字符。
示例 1:打印 char 变量
#include <iostream>
using namespace std;
int main() {
// initializing a variable
char ch = 'h';
// printing the variable
cout << "Character = " << ch << endl;
return 0;
}
输出
Character = h
在上面的示例中,我们声明了一个名为 ch 的字符类型变量。然后我们将字符 h 分配给它。
注意: 在 C 和 C++ 中,字符必须放在单引号内。如果我们使用双引号,那就是一个字符串。
ASCII 值
在 C 和 C++ 中,char
变量存储的是整数(ASCII 值),而不是字符本身。例如,如果我们给 char
变量赋值 'h'
,变量中存储的是 104,而不是字符本身。这是因为 'h'
的 ASCII 值是 104。
下表显示了字符 A、Z
、a、z
和 5 的ASCII 值。
字符 | ASCII 值 |
---|---|
A |
65 |
Z |
90 |
a |
97 |
z |
122 |
5 |
53 |
要了解更多关于ASCII 码的信息,请访问 ASCII 图表。
示例 2:获取字符的 ASCII 值
#include <iostream>
using namespace std;
int main() {
char ch = 'h';
// Printing the corresponding ASCII of a character
// Notice the use of int() to get an integer
cout << "ASCII value = " << int(ch) << endl;
return 0;
}
输出
ASCII value = 104
我们可以在打印时使用 int()
来获取字符对应的 ASCII 值。
我们可以给 char
变量赋值一个 ASCII 值(从0到127),而不是字符本身。
示例 3:使用 ASCII 值打印字符
#include <iostream>
using namespace std;
int main() {
// assigning an integer value to char
char ch = 104;
// printing the variable
cout << "Character = " << ch << endl;
return 0;
}
输出
Character = h
注意: 如果我们给 char
变量赋值 '5'
(带引号),我们存储的是53(其 ASCII 值)。但是,如果我们给 char 变量赋值 5
(不带引号),我们存储的是 ASCII 值5。
C++ 转义序列
在 C++ 中,某些字符具有特殊含义,例如单引号 '
、双引号 "
、反斜杠 \
等。我们不能直接在程序中使用这些字符。例如,
// This code shows an error
char character = ''';
在这里,我们试图将一个单引号字符 '
存储在一个变量中。但这段代码会显示编译错误。
那么我们该如何使用这些特殊字符呢?
为了解决这个问题,C++ 提供了称为转义序列的特殊代码。现在借助转义序列,我们可以像它们本身一样编写这些特殊字符。例如,
// does not show error
char character = ' \' ';
在这里,\'
是一个转义序列,它允许我们将单引号存储在变量中。
下表列出了 C++ 的转义序列。
转义序列 | 字符 |
---|---|
\b |
退格符 |
\f |
换页符 |
\n |
换行 |
\r |
回车 |
\t |
水平制表符 |
\v |
垂直制表符 |
\\ |
反斜杠 |
\' |
单引号 |
\" |
双引号 |
\? |
问号 |
\0 |
空字符 |
示例 4:使用 C++ 转义序列
#include <iostream>
using namespace std;
int main() {
char character1 = 'A';
// using escape sequence for horizontal tab
char character2 = '\t';
char character3 = '5';
// using escape sequence for new line
char character4 = '\n';
char character5 = 'a';
// printing the variables
cout << character1; // A
cout << character2; // horizontal tab
cout << character3; // 5
cout << character4; // new line
cout << character5; // a
return 0;
}
输出
A 5 a
在上面的程序中,我们使用了两个转义序列:水平制表符 \t
和换行符 \n
。