Exercise 1: I would like to have a software with this output: Calculator 0.1 - GPL Write 'help' for the help menu, 'quit' for exit. Cmd: If the user writes 'help', this menu appears: help - this menu quit - exit a mathematical question like: 12 + 54 If the user writes 'quit', the software exists. If the user writes: Cmd: 45 - 2 Output: 43 Cmd: The software must return the correct value of the mathematical operation. The mathematical operations are: +, -, * and /. I would like to have every single operation in a different functions. A bit of tip: if you want convert a string in a number you can use the 'atoi'. This is a little example: --- #include #include #include int main (void) { char buf[512]; int numb; /* I put 123 in the buf string: */ strcpy (buf, "123"); numb = atoi (buf); printf ("%d\n", numb); return 0; } --- Another important tip is: the scanf can receive more variables in the same time like this code: --- #include int main (void) { char buf[512]; int numb; int ret; ret = scanf ("%s%d", buf, &numb); printf ("The user has inserted %d variables: %s %d\n", ret, buf, numb); return 0; } --- Exercise 2: Our first library. I would like to have 4 new functions from our next softwares. These functions have these prototypes: int my_string_length(char *); int my_string_compare(char *, char *); int my_string_contains(char *, char); char *my_string_revert(char *); my_string_length returns the length of the string. my_string_compare must be exactly like the strcmp function from the string.h. my_string_contains return 0 or 1 if the string (first argument) contains the specified character (second argument). The last function, my_string_revert returns the same string but reverted. You can test these functions with a simple main function. I don't want these functions based on string.h header or other string functions!