#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void get_me_a_string(int * int_array, int array_size, char * output_string, int output_string_max_size)
{
if(!int_array || !output_string)
return;
char * aux_string = NULL;
//Depending on the compiler int is 2-byte or 4 byte.
//Meaning INT_MAX will be at most 2147483647 (10 characters + 1 '\0').
aux_string
= (char *) malloc(11); if(!aux_string)
return;
int i;
int current_array_size = 0;
for(i = 0; i < array_size; i++)
{
sprintf(aux_string
, "%d", int_array
[i
]); current_array_size
+= strlen(aux_string
); if(current_array_size < output_string_max_size)
strcat(output_string
, aux_string
); else
break;
}
}
int main(void) {
int a[5]={5,21,456,1,3};
int string_max_size = 256;
char * string_from_array = NULL;
string_from_array
= (char *) malloc(string_max_size
);
if(NULL == string_from_array)
{
printf("Memory allocation failed. Exiting..."); return 1;
}
memset(string_from_array
, 0, string_max_size
); get_me_a_string(a, 5, string_from_array, string_max_size);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKdm9pZCBnZXRfbWVfYV9zdHJpbmcoaW50ICogaW50X2FycmF5LCBpbnQgYXJyYXlfc2l6ZSwgY2hhciAqIG91dHB1dF9zdHJpbmcsIGludCBvdXRwdXRfc3RyaW5nX21heF9zaXplKQp7CglpZighaW50X2FycmF5IHx8ICFvdXRwdXRfc3RyaW5nKQoJCXJldHVybjsKCQkKCWNoYXIgKiBhdXhfc3RyaW5nID0gTlVMTDsKCQoJLy9EZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGludCBpcyAyLWJ5dGUgb3IgNCBieXRlLgoJLy9NZWFuaW5nIElOVF9NQVggd2lsbCBiZSBhdCBtb3N0IDIxNDc0ODM2NDcgKDEwIGNoYXJhY3RlcnMgKyAxICdcMCcpLgoJYXV4X3N0cmluZyA9IChjaGFyICopIG1hbGxvYygxMSk7CglpZighYXV4X3N0cmluZykKCQlyZXR1cm47CgkKCWludCBpOwoJaW50IGN1cnJlbnRfYXJyYXlfc2l6ZSA9IDA7Cglmb3IoaSA9IDA7IGkgPCBhcnJheV9zaXplOyBpKyspCgl7CgkJc3ByaW50ZihhdXhfc3RyaW5nLCAiJWQiLCBpbnRfYXJyYXlbaV0pOwoJCWN1cnJlbnRfYXJyYXlfc2l6ZSArPSBzdHJsZW4oYXV4X3N0cmluZyk7CgkJaWYoY3VycmVudF9hcnJheV9zaXplIDwgb3V0cHV0X3N0cmluZ19tYXhfc2l6ZSkKCQkJc3RyY2F0KG91dHB1dF9zdHJpbmcsIGF1eF9zdHJpbmcpOwoJCWVsc2UKCQkJYnJlYWs7Cgl9CgkKCWZyZWUoYXV4X3N0cmluZyk7Cn0KCmludCBtYWluKHZvaWQpIHsKCWludCBhWzVdPXs1LDIxLDQ1NiwxLDN9OwoJCglpbnQgc3RyaW5nX21heF9zaXplID0gMjU2OwoJY2hhciAqIHN0cmluZ19mcm9tX2FycmF5ID0gTlVMTDsKCQoJc3RyaW5nX2Zyb21fYXJyYXkgID0gKGNoYXIgKikgbWFsbG9jKHN0cmluZ19tYXhfc2l6ZSk7CgkKCWlmKE5VTEwgPT0gc3RyaW5nX2Zyb21fYXJyYXkpCgl7CgkJcHJpbnRmKCJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuIEV4aXRpbmcuLi4iKTsKCQlyZXR1cm4gMTsKCX0KCQoJbWVtc2V0KHN0cmluZ19mcm9tX2FycmF5LCAwLCBzdHJpbmdfbWF4X3NpemUpOwoJZ2V0X21lX2Ffc3RyaW5nKGEsIDUsIHN0cmluZ19mcm9tX2FycmF5LCBzdHJpbmdfbWF4X3NpemUpOwoJCglwcmludGYoc3RyaW5nX2Zyb21fYXJyYXkpOwoJCglmcmVlKHN0cmluZ19mcm9tX2FycmF5KTsKCXJldHVybiAwOwp9Cgo=