convert int to char* in standard C (without itoa)

Alexandru N. Onea picture Alexandru N. Onea · Jan 7, 2012 · Viewed 22.5k times · Source

I have declared and initialized two variables as shown below:

int a=5;
char* str;
str = (char*)calloc(255, sizeof(char));

I want to convert the int to char* in standard C. I cannot use any conversion function from C++ such itoa.

I am using Ubuntu 11.10

Answer

ThiefMaster picture ThiefMaster · Jan 7, 2012

First of all, itoa is not a C++ thing.

You can simply use sprintf:

sprintf(str, "%d", a)

In a real application you'll want to use snprintf though to remove the risk of a buffer overflow:

str = malloc(16);
snprintf(str, 16, "%d", a);

And 15 characters are way enough to store an integer.