CSci 151 Assignment 6: Strings Spring 2015 Develop a C++ program to input, process and output character strings according to the specifications and constraints below. Use your leoMail username as the source file name(e.g. gPolya.cpp). Attach that source file to an email sent to tom.brown at the domain named tamuc.edu on or before the end of Friday 17 April. The email "subject" is to include our course code (151), your leoMail name without the domain name, and the assignment number. Steps: 1. Output a descriptive program heading line. 2. Input: get an email address: prompt the user to enter strings for an email userName (i.e firstName "dot" lastName), and for a domain name (i.e. organization "dot" domain class). Example inputs: george.polya, and idaho.edu. 3. Processing: a. Assign to a string named emailAddress the value from an expression that concatenates the value of userName with the '@' sign, and that string concatenated to the variable domainName. Example result: george.polya@idaho.edu b. Get edited name: 1) locate the "dot" delimiter in emailAddress and extract name substrings: assign to an int named dotPlace the value returned as a result of the object userName calling find() to locate the dot(".") between the first name and last name substrings. 2) have userName invoke substr() to extract the first name, then invoke substr() again to extract last name with those return values assigned to firstName and lastName respectively. 3) change the case of firstName and lastName to "initCap": process firstName and lastName to ensure their first letters are in uppercase and trailing letters are set to lower case (called "initCap" format). Example: George Polya 4) create an edited name composed of the concatenation of last name, a comma and space(, ) and first name. Example Polya, George 4. Outputs: a. A descriptive program heading line; b. Prompts for userName and domainName; c. "Echoed" input values for userName and domainName and their respective lengths(e.g. userName: george.polya length 12; domainName: idaho.edu length 9). Length of a string is the value returned when a string object invokes length(); d. The concatenated emailAddress returned from getEmailAddress() and the emailLength (e.g. emailAddress: george.polya@idaho.edu, length: 22); e. The firstName and lastName values found, extracted, and formatted as "initCap"(e.g. firstName: George lastName: Polya) f. An edited name, as might be listed in an address book, that is composed of the values for lastName and firstName with first letters capitalized, and with a comma and a space concatenated between them. Example: Polya, George. * Include side labels for outputs specified in steps 4c-f. Style and design constraints: 1. Place a comment at the top of your source program with the program file name, the class code (151), and the assignment number. 2. Use descriptive names, conventional notation when naming identifiers, and initialize them according to data type and expected value. Indent and align statements for readability. 3. Create and invoke programmer-defined functions to: a) get the email address, and b) format the edited name. 4. Invoke built-in string functions length(), find(), and substr() as needed. 5. Incorporate an event-controlled loop to allow the application user to repeat the input, processing and output until there is a signal to exit.