int NumberAt(long num, int unit) { while (unit-- > 0) num /= 10; return num % 10; } int NumberLength(long num) { int len = 1, sum = 10; while (num >= sum) { sum *= 10; len++; } return len; } char* numToChar(long num) { int len = NumberLength(num), flag = 1; if (num < 0) { num *= -1; flag = 0; } char* chars = (char*)malloc(len); char alph[10] = { '0','1','2','3','4','5','6','7','8','9' }; if (chars == NULL)return NULL; for (int i = 0; i < len; i++) { *(chars + i) = alph[NumberAt(num, len - i)]; } return chars; } int main() { long num = 1234567890; char* chars = numToChar(num); for (int i = 0; i < 10; i++) { printf("%c", chars[i]); } return 0; }