C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
什么是 char?
C++ 中的 char 是基本整型数据类型,存储单个字符。内部以 8 位整数表示,恰好占用 1 字节内存。因是整型,可像其他数值类型一样参与算术运算和比较。
本教程你将学到:
- 定义
char变量 - 理解 ASCII 及其在字符表示中的作用
- 打印 ASCII 码与字符值
- 从用户输入读取字符
- 字符与字符串的多种转换方法
ASCII – 底层编码
存储 char 值时,C++ 编译器将其解释为 ASCII 码(American Standard Code for Information Interchange)。ASCII 给每个可打印字符分配一个整数值(0–127)。例如字母 'a' 对应十进制 97。
声明 char 变量
用 char 关键字加变量名声明。可选用单引号括起的单字符字面量初始化。
char variableName; // 声明 char variableName = 'X'; // 声明并初始化
示例 1:声明并打印 char
#include <iostream> using namespace std; int main() { char grade = 'B'; cout << "I scored a: " << grade; return 0; }
输出:

打印字符的 ASCII 值
char 本质是整数,可强转为 int 显示其 ASCII 码。
示例 2:用户输入与 ASCII 输出
#include <iostream> using namespace std; int main() { char ch; cout << "Enter any character: "; cin >> ch; cout << "The ASCII Value of " << ch << " is " << int(ch); return 0; }
输出:

从 ASCII 码打印字符
将整数字面量赋给 char 变量,编译器将该整数视为 ASCII 码存储对应字符。
示例 3:ASCII 转字符
#include <iostream> using namespace std; int main() { char x = 64, y = 66, z = 71; cout << x << y << z; return 0; }
输出:

从用户读取字符
提取运算符 >> 仅读取第一个非空白字符,后续字符留在输入缓冲区待后续读取。
示例 4:读取两个字符
#include <iostream> using namespace std; int main() { cout << "Type a sequence of characters: "; char ch; cin >> ch; cout << "The ASCII code of " << ch << " is " << int(ch) << '\n'; cin >> ch; cout << "The ASCII code of " << ch << " is " << int(ch) << '\n'; return 0; }
输出:

将字符转换为字符串
将单字符转为 std::string 有多种技术,下面列出最常用的方法。
#1 – 使用 string 构造函数
string st(1, 'C');
创建长度为 1、包含字符 'C' 的字符串。
示例 5
#include <iostream> #include <string> using namespace std; int main() { string st(1, 'C'); cout << "The resulting string is : " << st; return 0; }
输出:

#2 – 使用重载的 = 与 += 运算符
直接赋值或追加字符到字符串,简洁易读。
示例 6
#include <iostream> #include <string> using namespace std; int main() { string st; char b = 'B'; st = 'A'; st += b; cout << "The resulting string is : " << st; return 0; }
输出:

#3 – 使用 string 成员函数
push_back(char)– 在末尾添加字符。append(size_t, char)– 添加多个相同字符。assign(size_t, char)– 用多个相同字符替换字符串。insert(size_t, size_t, char)– 在指定位置插入字符。
示例 7
#include <iostream> #include <string> using namespace std; int main() { string st; st.push_back('A'); cout << "push_back A returns : " << st << endl; st = ""; st.append(1, 'C'); cout << "append C returns : " << st << endl; st = ""; st.assign(1, 'D'); cout << "assign D returns : " << st << endl; st.insert(0, 1, 'E'); cout << "insert single character returns : " << st << endl; return 0; }
输出:

#4 – 使用 std::stringstream
流运算符对 char 重载,易于转字符串。
示例 8
#include <iostream> #include <string> #include <sstream> using namespace std; int main() { string st; stringstream myst; myst << 'A'; myst >> st; cout << "The conversion of the single character returns the string: " << st; return 0; }
输出:

核心要点
char是 8 位整型,存单字符,占 1 字节。- 以 ASCII 码(0–127)形式存储。
- 将
char强转为int可得 ASCII 码。 - 字符转字符串可用构造函数、赋值运算符、成员函数或字符串流。
C语言
- 可靠性互联网中的数据驾驭:高效管理策略
- 以高级性能监测最大化物联网ROI
- 深入理解 C++ 数据类型:基础类型、修饰符与最佳实践
- C++ do-while 循环详解:语法、实战示例与嵌套循环
- C++ 指针精通:核心概念、代码示例与实战应用
- C++ 运算符重载实战指南:语法、方法、限制与代码示例
- C++ 结构体详解:定义、初始化、指针、函数参数与局限性
- 掌握 C++ std::list:语法、函数与实战示例
- C++ 函数详解:从声明到调用的实战指南
- C++变量类型详解:内存布局、取值范围与操作集
- C++数据结构实战:结构体struct定义、访问、函数参数、指针与typedef别名
- 掌握 Java 类型转换:从自动拓宽到强制收窄及更多