char转int:通过赋值自动获取ASCII码,如char c = 'A'; int ascii = c; 得65。2. int转char:强制类型转换或赋值,如char ch = (char)65; 得'A'。

在C++中,int 与 char 的相互转换非常常见,尤其是在处理字符编码、字符串操作或底层数据解析时。核心原理是利用ASCII码表中字符与整数之间的对应关系。以下是常用的转换方法和技巧总结。
1. char 转 int(获取ASCII码值)
将一个字符转换为其对应的ASCII码值,只需将其赋值给 int 类型变量即可,系统会自动完成类型转换。
char c = 'A'; int ascii = c; // 结果:65 cout << ascii << endl;
也可以显式使用强制类型转换,提高代码可读性:
int ascii = static_cast(c);
2. int 转 char(根据ASCII码生成字符)
将一个整数转换为对应的ASCII字符,直接赋值给 char 变量即可,前提是该整数在有效ASCII范围内(0~127,扩展ASCII可达255)。
立即学习“C++免费学习笔记(深入)”;
int ascii = 66; char c = ascii; // 结果:'B' cout << c << endl;
推荐使用静态类型转换增强安全性:
char c = static_cast(ascii);
3. 数字字符与数值的转换(常用技巧)
注意区分“字符‘5’”和“数值5”。它们在ASCII中相差48(即 '0' 的ASCII值)。
- 字符数字转整数:减去 '0'
- 整数转字符数字:加上 '0'
char ch = '7'; int num = ch - '0'; // 结果:7
int num = 3; char ch = num + '0'; // 结果:'3'
这种方法常用于手动实现 itoa 或处理单个数字字符。
4. 处理多位数字与字符串转换
对于多位整数与字符串之间的转换,建议使用标准库函数:
- int 转 string:用 to_string
- string 转 int:用 stoi
int num = 123; string str = to_string(num); // "123"
string str = "456"; int num = stoi(str); // 456
基本上就这些。掌握 char 和 int 基于ASCII的互转,以及数字字符与数值间的加减 '0' 技巧,能有效提升C++中字符处理的效率和准确性。不复杂但容易忽略细节,比如类型溢出或非法ASCII值,使用时注意范围检查。










