int i = 32;
char c = (char)i;
Try looking up sprintf. Also, for numbers less than 8 bits resolution or 256, you can cast it explicitly from int to char.
Why doesn't this work for you? (assuming C is the language in question)?
char c;
int x;
...
c=(char)x;
There's the good old:
int n = 123;
char c[20];
sprintf(c, "%d", n);
It's nasty because how long should the array c be? But it's extremely common in C code in the wild.
Are you looking for the char equivalent of a single digit number? For example, converting 5 to '5'? If so then you can do the following, assuming of course the char is 9 or less.
char dig = (char)(((int)'0')+i);
If you dont want to use any of the other answers, you can try:
int intNum = 1;
char chString[2];
//convert to string
itoa(intNum, chString, 10); //stdlib.h
In response to your edit, just use printf and specify an integer:
int i = 10;
printf("%d", i);
The reason for this is 0 represents the number 0. The ASCII character "0" is not at zero, but at 48.
This is why Jared's Answer will work: char dig = (char)(((int)'0')+i);
It takes "0" (which is 48), and adds your number to it. 0 + 48 is 48, so 0 becomes "0". If you are converting a 1, it will be 48 + 1, or 49, which corresponds to "1" on the ASCII chart.
This only works for numbers 0 through 9, as "10" is not an ASCII character, but rather "1" followed by a "0".