You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ASCII值存储到数组中?输出字符为何显示空白?

问题分析与解决

你的代码逻辑本身没问题,但输出空白的核心原因是你输入的数字对应ASCII控制字符(编码范围通常是0-31、127),这类字符属于不可打印的控制指令(比如换行、回车、退格),终端无法显示可见字符,所以会呈现空白。

验证方式

输入可打印ASCII字符的编码(范围32-126)就能正常显示对应字符,比如:

  • 输入65 → 显示大写字母A
  • 输入97 → 显示小写字母a
  • 输入33 → 显示感叹号!

可选优化方案

如果想避免这种情况,可以在输出前判断输入数字是否在可打印范围内,修改后的代码如下:

#include <stdio.h>

int main() {
    int arr[5], i;

    printf("Enter 5 numbers:\n");
    for (i = 0; i < 5; i++) {
        scanf("%d", &arr[i]);
    }

    printf("ASCII values corresponding to the input numbers:\n");
    for (i = 0; i < 5; i++) {
        if (arr[i] >= 32 && arr[i] <= 126) {
            printf("%d: %c\n", arr[i], (char)arr[i]);
        } else {
            printf("%d: [不可打印控制字符]\n", arr[i]);
        }
    }

    return 0;
}

内容的提问来源于stack exchange,提问作者Educational Channel Only

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:24:56