Suppose you are given a file containing a list of names and phone numbers in the form
“First_Last_Phone.” Write a program to extract the phone numbers and store them in the output
Enter the file name: input_names.txt
Output file name: phone_input_names.txt
1) Name your program phone_numbers.c
2) The output file name should be the same name but an added phone_ at the beginning.
Assume the input file name is no more than 100 characters. Assume the length of each
line in the input file is no more than 10000 characters.
3) The program should include the following function:
void extract_phone(char *input, char *phone);
The function expects input to point to a string containing a line in the
“First_Last_Phone” form. In the function, you will find and store the phone number in
Before you submit
1. Compile both programs with –Wall. –Wall shows the warnings by the compiler. Be sure
it compiles on student cluster with no errors and no warnings.
gcc –Wall phone_numbers.c
2. Be sure your Unix source file is read & write protected. Change Unix file permission on
chmod 600 phone_numbers.c
3. Test your fraction program with the shell scripts on Unix:
chmod +x try_phone_numbers
4. Submit phone_numbers.c, input_names.txt (for grading purpose) on Canvas.
Total points: 100
1. A program that does not compile will result in a zero.
2. Runtime error and compilation warning 5%
3. Commenting and style 15%
4. Functionality 80% (Including functions implemented as required)
Programming Style Guidelines
The major purpose of programming style guidelines is to make programs easy to read and
understand. Good programming style helps make it possible for a person knowledgeable in the
application area to quickly read a program and understand how it works.
1. Your program should begin with a comment that briefly summarizes what it does. This
comment should also include your name.
2. In most cases, a function should have a brief comment above its definition describing
what it does. Other than that, comments should be written only needed in order for a
reader to understand what is happening.
3. Information to include in the comment for a function: name of the function, purpose of
the function, meaning of each parameter, description of return value (if any), description
of side effects (if any, such as modifying external variables)
4. Variable names and function names should be sufficiently descriptive that a
knowledgeable reader can easily understand what the variable means and what the
function does. If this is not possible, comments should be added to make the meaning
5. Use consistent indentation to emphasize block structure.
6. Full line comments inside function bodies should conform to the indentation of the code
where they appear.
7. Macro definitions (#define) should be used for defining symbolic names for numeric
constants. For example: #define PI 3.141592
8. Use names of moderate length for variables. Most names should be between 2 and 12
9. Use underscores to make compound names easier to read: tot_vol or
total_volumn is clearer than totalvolumn.