В ролях?
char c = (char)i;
А может, ты это имел ввиду?
char c = (char)('0' + i);
Я уверен, что это не то, что вы имеете в виду ... Я предполагаю, что вы хотите создать строку (массив символов)? Если это так, то вам нужно конвертировать по одной цифре за раз, начиная с самой младшей цифры. Вы можете сделать это рекурсивно, в псевдокоде:
function convertToString(i)
if i < 10
return convertDigitToChar(i)
else
return convertDigitToString(i / 10) concat convertDigitToChar(i % 10)
Здесь /
- целочисленное деление, а %
- целочисленное по модулю. Вам также нужно обрабатывать отрицательные числа. Это можно сделать, проверив сначала, есть ли у вас отрицательное число, вызвав функцию со значением aboslute и добавив знак минус при необходимости.
В C для производительности вы, вероятно, реализовали бы это с помощью цикла вместо использования рекурсии и путем непосредственного изменения содержимого массива символов вместо объединения строк.