在c中显示字符的ASCII值

时间:2010-08-11 16:24:20

标签: c ascii

我接受了一个角色作为用户的输入。我想打印该字符的ASCII值作为输出。如果不使用任何预先定义的函数(如果存在),我怎么能这样做?

6 个答案:

答案 0 :(得分:9)

使用printf("%c", my_char)打印数字(ASCII)值,而不是%d

答案 1 :(得分:8)

还要考虑printf("%hhu", c);来精确指定转换为unsigned char并打印其十进制值。

Update0

所以我实际上已经在我的C编译器上测试了这个,看看发生了什么,结果很有意思:

char c = '\xff';
printf("%c\n", c);
printf("%u\n", c);
printf("%d\n", c);
printf("%hhu\n", c);

这就是印刷品:

� (printed as ASCII)
4294967295 (sign extended to unsigned int)
-1 (sign extended to int)
255 (handled correctly)

感谢caf指出可能会以意想不到的方式宣传这些类型(显然它们适用于%d%u个案例)。此外,似乎%hhu案例正在转回char unsigned,可能会修改符号扩展名。

答案 2 :(得分:2)

此演示展示了基本概念:

#include <stdio.h>

int main()
{
    char a = 0;
    scanf("%c",&a);

    printf("\nASCII of %c is %i\n", a, a); 

    return 0;
}

答案 3 :(得分:1)

代码printf("%c = %d\n", n, n);显示字符及其ASCII。

答案 4 :(得分:0)

这将生成所有ASCII字符的列表并打印它的数值。

#include <stdio.h>
#define N 127

int main()
{
    int n;
    int c;

    for (n=32; n<=N; n++) {
        printf("%c = %d\n", n, n);
    }

    return 0;
} 

答案 5 :(得分:-1)

 #include "stdio.h"
 #include "conio.h"
 //this R.M.VIVEK coding for no.of ascii values display and particular are print

void main()
{
    int rmv,vivek;
    clrscr();

    for(rmv=0;rmv<=256;rmv++)
    {
        if(printf("%d = %c",rmv,rmv))
    }

    printf("Do you like particular ascii value\n enter the 0 to 256 number");
    scanf("%d",&vivek);
    printf("\nthe rm vivek ascii value is=%d",vivek);
    getch();
}