How to convert an int number into an array of int digits in C

2 Answers

0 votes
#include <stdio.h>
 
void convert_number(int digits[], int n, int size) {
    int i = size - 1;
     
    while (n > 0) {
        digits[i] = n % 10;
        n = n / 10;
        i--;
    }
}
 
int main(void)
{
    int digits[] = {0,0,0,0,0,0,0,0,0,0};
    int num = 12345;
    int size = sizeof(digits) / sizeof(digits[0]);
 
    convert_number(digits, num, size);
     
    for (int i = 0; i < size; i++) {
        printf("%2d", digits[i]);
    }
     
    return 0;
}
 
 
 
 
/*
run:
       
0 0 0 0 0 1 2 3 4 5
  
*/

 



answered Apr 24, 2017 by avibootz
edited Feb 2, 2024 by avibootz
0 votes
#include <stdio.h>
#include <math.h> 
 
void convert_number(int digits[], int n, int size) {
    int len = log10(n) + 1;
    int i = len - 1;
 
    while (n > 0) {
        digits[i] = n % 10;
        n = n / 10;
        i--;
    }
}
 
int main(void)
{
    int digits[] = {0,0,0,0,0,0,0,0,0,0};
    int num = 12345;
    int size = sizeof(digits) / sizeof(digits[0]);
 
    convert_number(digits, num, size);
     
    for (int i = 0; i < size; i++) {
        printf("%2d", digits[i]);
    }
     
    return 0;
}
 
 
 
/*
run:
       
1 2 3 4 5 0 0 0 0 0
  
*/

 



answered Apr 24, 2017 by avibootz
edited Oct 2, 2023 by avibootz

Related questions

2 answers 110 views
2 answers 130 views
1 answer 95 views
2 answers 198 views
2 answers 227 views
2 answers 270 views
2 answers 287 views
...