繁体   English   中英

如何在C语言中将十进制值转换为字符

[英]How to convert decimal value to character in c language

我有一个char数组,但是值是一个字符的十进制表示形式。 例:

char bytes[4]={50,48,49,51}

如何将其转换为如下所示的char数组:

char bytes1[4]={2,0,1,3}

创建数组时,应使用字符文字:

char bytes[4] = {'2', '0', '1', '3'};

它们以您的编译器正在使用的字符编码存储在内存中,该编码将字符转换为数字。

如果要获取人类阅读时由字符表示的十进制值(即'2'-> 2),则可以进行bytes[x] - '0'假定数字字符在字符编码中是相邻的(即至少对于ASCII和UTF是正确的。

此问题的输入数组为:

char bytes[4]={50,48,49,51}

在内存中,字符存储为相应的ASCII值(或由编译器选择的任何其他字符编码方案): http : //en.wikipedia.org/wiki/ASCII

对于给定的输入, ASCII值-字符映射如下:

ASCII Value   ||  Character
48            ||     '0'
49            ||     '1'
50            ||     '2'
51            ||     '3'

注意:

A.要将给定的字符值转换为相应的整数值:

Subtract '0'.

Example: '2' - '0' = (int) 2

B.将给定的整数值转换为相应的字符:

Add '0'.

Example: 2 + '0' = 50 {ASCII Value for '2'}  

打印给定输入数组的字符值:

int main ()
{
    char bytes[4]={50,48,49,51};  
    int i=0;

    /* Print The Equivalent Character Values */
    for (i=0; i<4; i++)
    {   
        printf ("%c\t", bytes[i]);
    }   

    return 0;
}

输出:

2       0       1       3

如果您有一个字符数组,并且想要将它们的值获取为整数,则可以执行

int a = bytes[0] - '0';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM