【问题标题】:Convert ASCII number to ASCII Character in C在 C 中将 ASCII 数字转换为 ASCII 字符
【发布时间】:2011-10-03 08:39:07
【问题描述】:

在 C 中,有没有办法将输入为 int 的 ASCII 值转换为对应的 ASCII 字符为 char?

【问题讨论】:

  • int ia = 65; char ca = (char)ia;

标签: c types ascii


【解决方案1】:
char A;
printf("ASCII value of %c = %d", c, c);

在这个程序中,要求用户输入一个字符。字符存储在变量 c 中。 使用%d格式字符串时,显示65A的ASCII值)。 使用%c格式字符串时,会显示A本身。

输出: ASCII value of A = 65

【讨论】:

    【解决方案2】:

    如果iint,那么

    char c = i;
    

    使它成为char。如果该值来自不受信任的来源,您可能需要添加检查以确保该值为 <128。如果您的系统上可用,最好使用来自<ctype.h>isascii 完成此操作(请参阅@Steve Jessop 对此答案的评论)。

    【讨论】:

    • isascii 是 Posix 函数,而不是标准 C。MS 显然也支持它(但已弃用),因此涵盖了大多数实现。
    • @Steve,感谢您的更正,您是对的。我还将ctype.h 拼错为ctypes.h
    【解决方案3】:

    如果数字存储在字符串中(如果是用户键入的字符串),您可以使用atoi() 将其转换为整数。

    一个整数可以直接赋值给一个字符。一个字符的不同主要是因为它是如何被解释和使用的。

    char c = atoi("61");
    

    【讨论】:

      【解决方案4】:

      您可以直接将int 分配给char

      int a = 65;
      char c = a;
      printf("%c", c);
      

      事实上这也可以。

      printf("%c", a);  // assuming a is in valid range
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-30
        • 2018-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-02
        • 1970-01-01
        相关资源
        最近更新 更多