Search code examples
ccharintitoa

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


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


Solution

  • 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.