Chapter 8: Programming Exercises ================================ :: 1. One very useful search algorithm for sorted lists is the binary search. Write a program that will display the following menu: 0. Quit 1. Input Names 2. Sort Names 3. Search for Name The program will prompt for an input of a last name and store the name into an array of pointers, **char *theNames[20]**. A maximum of twenty names will be input or until the user indicates completion of input. The array can be sorted in ascending order using the bubble sort algorithm. A given name can be searched for with the binary search algorithm. The algorithm is as follows: A. Divide the sorted list into two halves. B. Compare the element searched for with the midpoint element. C. If the midpoint element is equal to the searched element, then we are finished. If not, determine which sublist the element should be in, top or bottom. This is the new list to search. D. Repeat steps A through C until the element is found or the searched list shrinks to zero, whichever occurs first. 2. Write a program that prompts for the input of a text string. The program should loop accepting text strings until the word 'end' is input as the only text on the input line. The lines input must be stored into an array of pointers, **char *text[20];**, no more than twenty lines to be input and allow the user to quit input early. Write a function **encrypt()** that encrypts the text held in the array. The encryption algorithm will be your year of birth bitwise exclusive or-ed with each character in the text string. Print the text strings before encryption and after encryption. 3. Write a program that will find, search and replace text strings. The program must prompt for the input of an initial line of text. The program will then prompt for a phrase to be searched for and a phrase to replace the found phrase with. The replacement phrase can be shorter or longer than the searched for phrase. Show the updated initial line of text on the display.