Exercise 1-0
Compile, execute, and test the programs in this chapter.
Solution
I will be taking the programs directly from the book (chapter 1 – Working with Strings), test run them, and see what we get. This exercise is purely to get our hands dirty right away on writing a submitting very simple programs on handling strings. Nothing too clever.
Test (Program 1)
The goal of this program is to
- ask for a person’s name,
- read the name in as a string variable, and
- output a greeting message.
// ask for a person's name, and greet the person #include <iostream> #include <string> int main() { // ask for the person's name std::cout << "Please enter your first name: "; // read the name std::string name; //define name std::cin >> name; //read into name // write a greeting std::cout << "Hello, " << name << "!" << std::endl; return 0; }
Result (Program 1)
Run the program. The followings are produced in the console output window:
Please enter your first name:
Type in some texts (my name) on the keyboard
Please enter your first name: Johnny
Hit enter key and it gives:
Please enter your first name: Johnny Hello, Johnny! Process returned 0 (0x0) execution time : 2.631 s Press any key to continue.
Test (Program 2)
The goal of program 2 is to read in a person’s name, and generate a framed greeting like this:
****************** * * * Hello, Johnny! * * * ******************
To do this the following C++ program is taken directly from the book.
// ask for a person's name, and generate a framed greeting #include <iostream> #include <string> int main() { std::cout << "Please enter your first name: "; //ask for the person's name std::string name; //define name std::cin >> name; //read into name // build the message that we intend to write const std::string greeting = "Hello, " + name + "!"; // build the second and forth lines of the output const std::string spaces(greeting.size(),' '); const std::string second = "* " + spaces + " *"; const std::string first(second.size(),'*'); // write it all std::cout << std::endl; std::cout << first << std::endl; std::cout << second << std::endl; std::cout << "* " << greeting << " *" << std::endl; std::cout << second << std::endl; std::cout << first << std::endl; return 0; }
Result (Program 2)
Run the program. The followings are produced in the console output window:
Please enter your first name:
Type in some texts (my name) on the keyboard
Please enter your first name: Johnny
Hit enter key and it gives:
Please enter your first name: Johnny ****************** * * * Hello, Johnny! * * * ****************** Process returned 0 (0x0) execution time : 2.520 s Press any key to continue.
Some core learning:
- Use double quote “ to define string literal. Use single quote ‘ to define character (char) literal.
- We can use + to concatenate a string and a string literal (and vice versa), or a string and a string, but not a string with a string literal (nor vice versa). i.e.
- string + string is okay.
- string literal + string is okay.
- string + string literal is okay.
- string literal + string literal is NOT okay.
- Use the object component size() , which is a function, to determine the length (number of characters) of a string (the object itself). e.g. greeting.size gives the length of the string greeting.
- Refer to the book to see the various ways to define a string variables, including the use of overload.
- Keep It Simple and Stupid (KISS) – write the code in a way that is easy to write and understand. Nothing too clever.