Related Articles

# Input an integer array without spaces in C

• Last Updated : 13 Dec, 2018

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.

 `// C program to read a large number digit by digit``#include ``int` `main()``{``    ``// array to store digits``    ``int` `a;``    ``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;``}`

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.

 `// C program to read a large number digit by digit``#include ``int` `main()``{``    ``// array to store digits``    ``int` `a;``    ``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;``}`

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()

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.

My Personal Notes arrow_drop_up