1 / 23

C++ string Class Chapter 6

C++ string Class Chapter 6. Agenda . String Basics (cin, getline )  string operations mixed I/O using >> & getline() Table Output using setw() Functions that take string parameters. What’s a string? . A string is a sequence of letters in quotes

barny
Télécharger la présentation

C++ string Class Chapter 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C++ stringClass Chapter 6

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

  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. A stringvariable 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. #include <string> 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 <iostream> #include <string> using namespace std;

  6. #include Libraries should be consistent

  7. string I/O • cin and cout (<< and >> ) 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” ???

  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

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

  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. 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. Do Lab5 Problems 1-4

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

  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"; Console Enter your age: 43 Name (first last): , you don’t look 43.

  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"; Console Enter your age: 43 Name (first last):Al Short Al Short, you don’t look 43. Another option:use >> to read the string or strings (instead of getline)

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

  17. #include<iomanip> 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 useoutfile<<setw(4)<< 7 << endl; • Three of the spaces will be blank 7 7 <<left<<

  18. Application of setw( ) problem 6 Produces a table of square roots 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; } Sets column width

  19. Application of setw( ) problem 7 Produce a formatted table of strings and numbers 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

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

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

  22. Passing strings 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. Finally !!! … THE END 

More Related