Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Conversion from Byte to ASCII in C

Tags:

c

byte

Can anyone suggest means of converting a byte array to ASCII in C? Or converting byte array to hex and then to ASCII?

[04/02][Edited]: To rephrase it, I wish to convert bytes to hex and store the converted hex values in a data structure. How should go about it?

Regards, darkie

like image 468
name_masked Avatar asked Nov 23 '25 12:11

name_masked


1 Answers

Well, if you interpret an integer as a char in C, you'll get that ASCII character, as long as it's in range.

int i = 97;
char c = i;

printf("The character of %d is %c\n", i, c);

Prints:

The character of 97 is a

Note that no error checking is done - I assume 0 <= i < 128 (ASCII range).

Otherwise, an array of byte values can be directly interpreted as an ASCII string:

char bytes[] = {97, 98, 99, 100, 101, 0};

printf("The string: %s\n", bytes);

Prints:

The string: abcde

Note the last byte: 0, it's required to terminate the string properly. You can use bytes as any other C string, copy from it, append it to other strings, traverse it, print it, etc.

like image 77
Eli Bendersky Avatar answered Nov 27 '25 01:11

Eli Bendersky



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!