Write a program that initializes an array - of - double and then copies the contents of the array into two other arrays. (All three arrays should be declared in the main program.) To make the first copy, use a function with array notation. To make the second copy, use a function with pointer notation and pointer incrementing. Have each Function take as arguments the name of the target array and the number of elements to be copied. That is, the function calls would look like this, given the following declaratio ns: double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5}; double target[5]; double target[5]; copy_arr(source, target1, 5); copy_ptr(source, target1, 5); Design and test a function that searches the string specified by the first function parameter for the first occurrence of a character specified by the second function parameter. Have the function return a pointer to the character if successful, and a null if the character is not found in the string. (This duplicates the way that the library strchr() functi on works.) Test the function in a complete program that uses a loop to provide input values for feeding to the function. Note that if the function does not find the character, it should return a NULL pointer, not a pointer to a NULL character.