# Convert an integer number into an array

arraysc++

I am trying to convert an integer number in C into an array containing each of that number's digits

i.e. if I have

``````int number = 5400
``````

how can I get to

``````int numberArray
``````

where

``````numberArray = 0;
numberArray = 0;
numberArray = 4;
numberArray = 5;
``````

Any suggestions gratefully received.

#### Best Solution

This would work for numbers >= 0

``````#include <math.h>

char * convertNumberIntoArray(unsigned int number) {
int length = (int)floor(log10((float)number)) + 1;
char * arr = new char[length];
int i = 0;
do {
arr[i] = number % 10;
number /= 10;
i++;
} while (number != 0);
return arr;
}
``````

EDIT: Just a little bit more C style but more cryptic.

``````#include <math.h>

char * convertNumberIntoArray(unsigned int number) {
unsigned int length = (int)(log10((float)number)) + 1;
char * arr = (char *) malloc(length * sizeof(char)), * curr = arr;
do {
*curr++ = number % 10;
number /= 10;
} while (number != 0);
return arr;
}
``````