Note: Please refer to the Subject Outline for details regarding the assessment of the advanced assignment.
The Problem
You are to investigate the use of data structures and, in particular, the use of linked lists to represent data structures.
Write a program that creates a linked list of characters from a string entered by the user. (The string can be initially entered into an array.) Your program is then to remove all vowels (ie 'a', 'e', 'i', 'o', and 'u') from the string by manipulating the linked list - not by accessing the original array.
For example, if the user enters the following string (without the quotes):
"Who really loves C?"
the program would output (without the quotes):
"Wh rlly lvs C?"
Your program is to use only one linked list and is to:
1. ask the user for a string (this can be entered into an array);
2. generate a linked list of the string (from now on all access if via the linked list not the array);
3. print the string by accessing the linked list;
4. remove all the vowels from the linked list; and,
5. print the modified string by accessing the linked list.
Your program is to use appropriate error checking when acquiring memory from the heap.
If you have any questions regarding clarification of the problem, please discuss these with your tutor during the tutorial session. Please do not contact the Subject Coordinator.
Notes
1. You can use any compiler to compile your program; however, you must ensure that you use only "ANSI C standard" functions and not any "compiler-specific" functions. That is, you must ensure that your source code complies with the "ANSI C standard" and can be compiled on any ANSI compliant C compiler.
2. Ensure that you use good coding style and that your code is adequately commented.
3. As in all assignments, you are not to use any global variables.
4. This assignment is primarily directed to students who are aiming for a D/HD in the subject.