C++ int与char互转方法_C++ ASCII码转换技巧总结

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

在C++中,intchar 的相互转换非常常见,尤其是在处理字符编码、字符串操作或底层数据解析时。核心原理是利用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)。

int ascii = 66;
char c = ascii;       // 结果:'B'
cout << c << endl;

推荐使用静态类型转换增强安全性:

char c = static_cast(ascii);

3. 数字字符与数值的转换(常用技巧)

注意区分“字符‘5’”和“数值5”。它们在ASCII中相差48(即 '0' 的ASCII值)。

  • 字符数字转整数:减去 '0'
  •   char ch = '7';
      int num = ch - '0';  // 结果:7
      
  • 整数转字符数字:加上 '0'
  •   int num = 3;
      char ch = num + '0'; // 结果:'3'
      

这种方法常用于手动实现 itoa 或处理单个数字字符。

4. 处理多位数字与字符串转换

对于多位整数与字符串之间的转换,建议使用标准库函数:

  • int 转 string:用 to_string
  •   int num = 123;
      string str = to_string(num);  // "123"
      
  • string 转 int:用 stoi
  •   string str = "456";
      int num = stoi(str);          // 456
      

基本上就这些。掌握 char 和 int 基于ASCII的互转,以及数字字符与数值间的加减 '0' 技巧,能有效提升C++中字符处理的效率和准确性。不复杂但容易忽略细节,比如类型溢出或非法ASCII值,使用时注意范围检查。