Given a string S consisting of space-separated integers, the task is to write a C program to take the integers as input from the string S and store them in an array arr[].
Examples:
Input: S = “1 2 3 4”
Output: {1, 2, 3, 4}Input: S = “32 12”
Output: {32, 12}
Approach: The idea is to solve the given problem is to use getchar() function to check if a ‘\n’ (newline) occurs is found while taking input and then stop the input. Follow the step below to solve the given problem:
- Initialize a variable, say count, which is used to store the index of the array element.
- Initialize an array arr[] of size 106 to store the elements into the array.
- Iterate using a do-while loop until newLine occurs and perform the following steps:
- Store the current value at index count as scanf(“%d “, &arr[count]); and increment the value of count.
- If the next character is not endline, then continue. Otherwise, break out of the loop.
- After completing the above steps, print the elements stored in the array.
Below is the implementation of the above approach:
C
// C program for the above approach #include <stdio.h> // Driver Code int main()
{ // Stores the index where the
// element is to be inserted
int count = 0;
// Initialize an array
int a[1000000];
// Perform a do-while loop
do {
// Take input at position count
// and increment count
scanf ( "%d" , &a[count++]);
// If '\n' (newline) has occurred
// or the whole array is filled,
// then exit the loop
// Otherwise, continue
} while ( getchar () != '\n' && count < 100);
// Resize the array size to count
a[count];
// Print the array elements
for ( int i = 0; i < count; i++) {
printf ( "%d, " , a[i]);
}
return 0;
} |
Output: