How to convert integer to string in C? [duplicate] How to convert integer to string in C? [duplicate] c c

How to convert integer to string in C? [duplicate]


Use sprintf():

int someInt = 368;char str[12];sprintf(str, "%d", someInt);

All numbers that are representable by int will fit in a 12-char-array without overflow, unless your compiler is somehow using more than 32-bits for int. When using numbers with greater bitsize, e.g. long with most 64-bit compilers, you need to increase the array sizeā€”at least 21 characters for 64-bit types.


Making your own itoa is also easy, try this :

char* itoa(int i, char b[]){    char const digit[] = "0123456789";    char* p = b;    if(i<0){        *p++ = '-';        i *= -1;    }    int shifter = i;    do{ //Move to where representation ends        ++p;        shifter = shifter/10;    }while(shifter);    *p = '\0';    do{ //Move back, inserting digits as u go        *--p = digit[i%10];        i = i/10;    }while(i);    return b;}

or use the standard sprintf() function.


That's because itoa isn't a standard function. Try snprintf instead.

char str[LEN];snprintf(str, LEN, "%d", 42);