1) Realizar un programa que reciba como argumentos del main una palabra y al comenzar solicite al usuario el ingreso de una frase. El programa debe reemplazar todas las veces que aparece la palabra ingresada y reemplazar cada letra por un asterisco *. Ejemplo: llamo al programa de la siguiente manera: ./prog dia y al ingresar la frase ingresamos lo siguiente: "el dia esta muy oscuro. Cada dia llueve mas." El programa finalmente debería imprimir: "el *** esta muy oscuro. Cada *** llueve mas." 2) Realizar una función que reciba strings, llamadas **frase** y **palabra**. Además debe recibir dos enteros, **pos** y **L**. La función debe insertar el string **palabra** en el string **frase**, en la posición indicada por el parámetro **pos**, reemplazando el caracter de la posición **pos** por toda la cadena, y corriendo el resto de la frase hacia la derecha. Debe escribir el string **frase**, y devolver el largo final de éste. Por ejemplo, si la frase que recibe la función es la siguiente: "no hay opciones" y la palabra que recibe es " malas ", con la posición 6, el string **frase** me quedaría así al salir de la función: "no hay malas opciones" y devuelve el entero 21 que es el largo final del string modificado. El prototipo de la función es el siguiente: **int** InsertarPalabra(**char** *frase, **char** *palabra, **int** pos, **int** L); La función además debe chequear los siguientes errores: > El entero **L** es el largo máximo del string **frase**. Si la frase modificada fuera a superar este largo, la función no hace nada y devuelve -1. > Si la posición a insertar el texto es mayor al largo del string **frase**, la función no hace nada y devuelve -2. Realizar un programa que permita probar esta función y sus casos de error. 3) Hacer un programa que pida al usuario que ingrese un texto, y reemplace cada vez que aparezca el signo '?' por el nombre de usuario, extraído de **envp**. Modificar luego para que el símbolo a reemplazar sea ingresado por el usuario como argumento del main.