Input an integer array without spaces in C

How to input a large number (a number that cannot be stored even in long long int) without spaces? We need this large number in an integer array such that every array element stores a single digit.

Input : 10000000000000000000000000000000000000000000000
We need to read it in an arr[] = {1, 0, 0...., 0}

In C scanf(), we can specify count of digits to read at a time. Here we need to simply read one digit at a time, so we use %1d.

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to read a large number digit by digit
#include <stdio.h>
int main()
{
    // array to store digits
    int a[100000];
    int i, number_of_digits;
    scanf("%d", &number_of_digits);
    for (i = 0; i < number_of_digits; i++) {
  
        // %1d reads a single digit
        scanf("%1d", &a[i]);
    }
  
    for (i = 0; i < number_of_digits; i++) 
        printf("%d ", a[i]);
      
    return 0;
}

chevron_right


Input :

27
123456789123456789123456789

Output :

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 

We can also use above style to read any number of fixed digits. For example, below code reads a large number in groups of 3 digits.

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to read a large number digit by digit
#include <stdio.h>
int main()
{
    // array to store digits
    int a[100000];
    int i, count;
    scanf("%d", &count);
    for (i = 0; i < count; i++) {
  
        // %1d reads a single digit
        scanf("%3d", &a[i]);
    }
  
    for (i = 0; i < count; i++) 
        printf("%d ", a[i]);
      
    return 0;
}

chevron_right


Input :

9
123456789123456789123456789

Output :

123 456 789 123 456 789 123 456 789 

Same concept can be used when we read from a file using fscanf()



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.