Converting int to char in C

后端 未结 7 533
不知归路
不知归路 2021-01-18 03:55

Right now I am trying to convert an int to a char in C programming. After doing research, I found that I should be able to do it like this:

int value = 10;
c         


        
7条回答
  •  北荒
    北荒 (楼主)
    2021-01-18 04:15

    So characters in C are based on ASCII (or UTF-8 which is backwards-compatible with ascii codes). This means that under the hood, "A" is actually the number "65" (except in binary rather than decimal). All a "char" is in C is an integer with enough bytes to represent every ASCII character. If you want to convert an int to a char, you'll need to instruct the computer to interpret the bytes of an int as ASCII values - and it's been a while since I've done C, but I believe the compiler will complain since char holds fewer bytes than int. This means we need a function, as you've written. Thus,

    if(value < 10) return '0'+value;
    return 'A'+value-10;
    

    will be what you want to return from your function. Keep your bounds checks with "radix" as you've done, imho that is good practice in C.

提交回复
热议问题