c语言ascii码转换字符

99ANYc3cd6
预计阅读时长 8 分钟
位置: 首页 C语言 正文

方法1:直接使用char类型(隐式转换)

ASCII码本质上是0-127的整数,可以直接赋值给char变量,C语言会自动将其解释为对应的字符。

#include <stdio.h>
int main() {
    int ascii_value = 65;  // 'A'的ASCII码
    char character = ascii_value;  // 隐式转换
    printf("字符: %c\n", character);  // 输出: A
    ascii_value = 97;     // 'a'的ASCII码
    character = ascii_value;
    printf("字符: %c\n", character);  // 输出: a
    return 0;
}

方法2:显式类型转换(强制转换)

如果变量是int类型,可以通过强制转换为char来显式表示字符。

#include <stdio.h>
int main() {
    int ascii_value = 48;  // '0'的ASCII码
    char character = (char)ascii_value;  // 强制转换
    printf("字符: %c\n", character);  // 输出: 0
    return 0;
}

方法3:通过格式化输出直接打印

如果只是临时需要打印字符,可以直接在printf中使用%c格式说明符,无需显式转换。

#include <stdio.h>
int main() {
    int ascii_value = 33;  // '!'的ASCII码
    printf("字符: %c\n", ascii_value);  // 直接输出: !
    return 0;
}

方法4:字符转ASCII码(反向操作)

如果需要将字符转回ASCII码,可以直接用int接收字符的值:

#include <stdio.h>
int main() {
    char ch = 'Z';
    int ascii_value = ch;  // 隐式转换为ASCII码
    printf("ASCII码: %d\n", ascii_value);  // 输出: 90
    return 0;
}

注意事项

  1. 范围限制:标准ASCII码是0-127,扩展ASCII码(如128-255)可能因系统而异。
  2. 负数处理:如果char是 signed 类型(常见于大多数系统),负数(如-128到-1)可能表示无效字符。
  3. 打印控制字符:ASCII码0-31是控制字符(如换行\n、回车\r),直接打印可能看不到效果。

完整示例

#include <stdio.h>
int main() {
    // ASCII码转字符
    int ascii[] = {65, 66, 67, 97, 98, 99, 48, 49, 50};
    for (int i = 0; i < 9; i++) {
        printf("%d -> %c\n", ascii[i], ascii[i]);
    }
    // 字符转ASCII码
    char chars[] = {'A', 'b', '1', '@'};
    for (int i = 0; i < 4; i++) {
        printf("%c -> %d\n", chars[i], chars[i]);
    }
    return 0;
}

输出

65 -> A
66 -> B
67 -> C
97 -> a
98 -> b
99 -> c
48 -> 0
49 -> 1
50 -> 2
A -> 65
b -> 98
1 -> 49
@ -> 64
-- 展开阅读全文 --
头像
c语言16进制转换10进制
« 上一篇 03-24
strcpy用法,缓冲区大小如何确保安全?
下一篇 » 03-24

相关文章

取消
微信二维码
支付宝二维码

目录[+]