#include <stdio.h>
#include <stdlib.h>
char *stringAsciiToString(int stringAscii[], size_t size);
int
main(int argc, char *argv[]) {
int stringAscii[] = {72, 101, 108, 108, 111, 32,
87, 111, 114, 108, 100};
const size_t size = sizeof(stringAscii)/sizeof(*stringAscii);
char *string = stringAsciiToString(stringAscii, size);
printf("Output -> '%s'\n", string
);
return 0;
}
char
*stringAsciiToString(int stringAscii[], size_t size) {
int i, slen = 0;
char *string
= malloc((size
+1) * sizeof(*string
)); if (!string) {
printf("Cannot allocate memory\n"); }
for (i = 0; i < size; i++) {
string[slen++] = stringAscii[i];
}
string[slen] = '\0';
return string;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmNoYXIgKnN0cmluZ0FzY2lpVG9TdHJpbmcoaW50IHN0cmluZ0FzY2lpW10sIHNpemVfdCBzaXplKTsKCmludAptYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKCWludCBzdHJpbmdBc2NpaVtdID0gezcyLCAxMDEsIDEwOCwgMTA4LCAxMTEsIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgIDg3LCAxMTEsIDExNCwgMTA4LCAxMDB9OwoKICAgIGNvbnN0IHNpemVfdCBzaXplID0gc2l6ZW9mKHN0cmluZ0FzY2lpKS9zaXplb2YoKnN0cmluZ0FzY2lpKTsKCiAgICBjaGFyICpzdHJpbmcgPSBzdHJpbmdBc2NpaVRvU3RyaW5nKHN0cmluZ0FzY2lpLCBzaXplKTsKCiAgICBwcmludGYoIk91dHB1dCAtPiAnJXMnXG4iLCBzdHJpbmcpOwoKICAgIGZyZWUoc3RyaW5nKTsKCglyZXR1cm4gMDsKfQoKY2hhciAKKnN0cmluZ0FzY2lpVG9TdHJpbmcoaW50IHN0cmluZ0FzY2lpW10sIHNpemVfdCBzaXplKSB7CglpbnQgaSwgc2xlbiA9IDA7CgoJY2hhciAqc3RyaW5nID0gbWFsbG9jKChzaXplKzEpICogc2l6ZW9mKCpzdHJpbmcpKTsKICAgIGlmICghc3RyaW5nKSB7CiAgICAJcHJpbnRmKCJDYW5ub3QgYWxsb2NhdGUgbWVtb3J5XG4iKTsKICAgIAlleGl0KEVYSVRfRkFJTFVSRSk7CiAgICB9CgogICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgCXN0cmluZ1tzbGVuKytdID0gc3RyaW5nQXNjaWlbaV07CiAgICB9CiAgICBzdHJpbmdbc2xlbl0gPSAnXDAnOwoKICAgIHJldHVybiBzdHJpbmc7Cn0=