如何获取整数而不是ASCII码值的输出

时间:2019-08-30 12:26:42

标签: c char ascii integer-promotion

我正在执行此程序 输出为104个ASCII码值。 它以ASCII值形式给出值,但是如何获得数字输出

void main()

{
    char ch1 , ch2, sum;

    ch1 = '2';
    ch2 = '6';
    sum = ch1+ch2;
    printf("sum = %d ", sum);
    getch();
}

2 个答案:

答案 0 :(得分:2)

只需使用表达式

sum = ch1 - '0' + ch2;

然后

printf("sum = %c ", sum);

这是一个演示程序

#include <stdio.h>

int main(void) 
{
    char ch1 , ch2, sum;

    ch1 = '2';
    ch2 = '6';
    sum = ch1 -'0' + ch2;

    printf( "sum = %c\n ", sum );
    //            ^^^ 

    return 0;
}

其输出为

sum = 8

另一种方法是

#include <stdio.h>

int main(void) {
    char ch1 , ch2, sum;

    ch1 = '2';
    ch2 = '6';
    sum = ch1 -'0' + ch2 - '0';

    printf( "sum = %d\n ", sum );
    //            ^^^ 

    return 0;
}

关于您的代码,然后在此代码段中

ch1 = '2';
ch2 = '6';
sum = ch1+ch2;

表达式ch1+ch2的计算方式类似于50 + 54(如果使用了字符的ASCII编码)

答案 1 :(得分:0)

我认为%c是您要查找的说明符。