Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 C++ string Class Chapter 6. 2 Agenda String Basics (cin, getline )  string operations mixed I/O using >> & getline() Table Output using setw() Functions.

Similar presentations


Presentation on theme: "1 C++ string Class Chapter 6. 2 Agenda String Basics (cin, getline )  string operations mixed I/O using >> & getline() Table Output using setw() Functions."— Presentation transcript:

1 1 C++ string Class Chapter 6

2 2 Agenda String Basics (cin, getline )  string operations mixed I/O using >> & getline() Table Output using setw() Functions that take string parameters

3 3 What’s a string? A string is a sequence of letters in quotes “Hello” “C++ is fun!” “” (empty string) cout<<“This is a string literal”<<endl; ofstream fout(“accnts.txt”); this is also a string literal

4 4 A string variable stores strings string s1; // empty string string s2 = “Hello World”; string s3(60, ‘*’); //s3 contains 60 asterisks s1=s2; //copy string s2 into s1 cout<<“String s1 holds ”<<s1<<endl; cout<<s3<<endl;

5 5 #include to use string string is a class that was created in ’98 to improve on C-strings (tedious arrays of char) The whole C++ standard was revised as well Keep using these post ’98 libraries : #include using namespace std;

6 6 #include Libraries should be consistent Pre ’98 StandardPost ’98 Standard new C++ string old C-string new C++ string old C-string You must also add using namespace std;

7 7 string I/O cin and cout ( > ) work the same cout<<“Enter two strings”<<endl; cin>>s1>>s2; // whitespace separates strings You type Gong Li You get s1 s2 Problem: How do you get s1 to hold “Gong Li” ??? GongLi

8 8 string input with getline( ) problem 2 getline( ) Reads everything until a ‘\n’ is found getline(cin, s1); getline(cin, s2); You type Gong Li Quoth the Raven, “Nevermore!” You get s1 s2 Gong LiQuoth the Raven, “Nevermore!”

9 9 Agenda String Basics (cin, getline ) string operations  mixed I/O using >> & getline() Table Output using setw() Functions that take string parameters

10 10 C++ string operations problem 4 Length of a C++ string can be found as : s.length(); // returns length of s C++ strings can be compared using relational operators like : if(s2 < s5) //… if(name == “Jones”) C++ strings can be concatenated and appended using the + and the += operators : string s6 = s5 + “HIJK”; s2 += s5;

11 11 String quiz T/F (“Salty” < “Sweet”) T/F(“aardvark” == “Aardvark”) T/F(“John” > “john”) What does full hold? string last=“Woods”, first = “Tiger”, full; a) full = first + last; _______________ b) full = first + “ “ + last; _______________ c) full = last + “, ” + first; _______________ What does k hold? int k = first.length( ); _______________

12 12 Do Lab5 Problems 1-4

13 13 Agenda String Basics (cin, getline ) string operations mixed I/O using >> & getline()  Table Output using setw() Functions that take string parameters

14 14 Warning—weird behavior mixing >> and getline( ) problem 5 string name; int age; cout << "Enter your age: "; cin >> age; cout << "Name (first last): "; getline (cin, name); cout << name << ", you don't look " << age << ".\n"; Enter your age: 43 Name (first last):, you don’t look 43. Console

15 15 Warning—weird behavior mixing >> and getline( ) problem 5 string name; int age; cout << "Enter your age: "; cin >> age;  does not remove enter key (‘\n’) cout << "Name (first last): "; cin.ignore (80, '\n');  ignores ‘\n’ left by cin>> getline (cin, name); cout << name << ", you don't look " << age << ".\n"; Another option: use >> to read the string or strings (instead of getline) Enter your age: 43 Name (first last):Al Short Al Short, you don’t look 43. Console

16 16 Agenda String Basics (cin, getline ) string operations mixed I/O using >> & getline() Table Output using setw()  Functions that take string parameters

17 Slide 17 Creating Space in Output The setw function specifies the number of spaces for the next item Applies only to the next item of output Example: To print the digit 7 in four spaces use outfile<<setw(4)<< 7 << endl; Three of the spaces will be blank 7 7 <<left<< #include

18 18 int n; cout << " N sqrt(N)" << endl; cout << "-----------" << endl; cout << fixed << showpoint<<setprecision(3); for (n=1; n<=10; n++) { cout << setw(2) << n; cout << setw(8) << sqrt(n); cout << endl; } Application of setw( ) problem 6 Produces a table of square roots Sets column width

19 19 const double RATE = 4.55; int tutor; int hours; string name; ofstream fout("output.txt"); for (tutor=1; tutor<=3; tutor++) { cout << "Tutor's name and hours worked: "; cin >> name >> hours; fout << fixed << showpoint << setprecision(2); fout << left<< setw(15) << name << right << setw(10)<< hours << setw(10) << hours*RATE << endl; } Notice Left and right justification Application of setw( ) problem 7 Produce a formatted table of strings and numbers

20 20 Do 5,6,7 (skip 8 for now) and 9

21 21 Agenda String Basics (cin, getline ) string operations Table Output using setw() string I/O using >> & getline() Functions that take string parameters 

22 22 Passing string s to functions Just like other parameters, strings can be passed to and returned from functions string AddJunior(string name) { name=name+”, Jr.”; return name; } FUNCTION CALL: string son; son=AddJunior(“Hank Williams”);

23 23 Finally !!! … THE END


Download ppt "1 C++ string Class Chapter 6. 2 Agenda String Basics (cin, getline )  string operations mixed I/O using >> & getline() Table Output using setw() Functions."

Similar presentations


Ads by Google