0% found this document useful (0 votes)
21 views22 pages

05-String Manipulations Updated On Oct 7 2018

The C++ string class offers advantages over C-style strings like a large set of member functions and overloaded operators. Special data types like string can be defined and initialized in various ways. Values can be input and output from string objects using operators like >> and <<. Member functions allow modifying, comparing, and extracting substrings from string objects.

Uploaded by

Arif Istiaq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views22 pages

05-String Manipulations Updated On Oct 7 2018

The C++ string class offers advantages over C-style strings like a large set of member functions and overloaded operators. Special data types like string can be defined and initialized in various ways. Values can be input and output from string objects using operators like >> and <<. Member functions allow modifying, comparing, and extracting substrings from string objects.

Uploaded by

Arif Istiaq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

05: The C++ string class

Programming Technique II
(SCSJ1023)

Adapted from Tony Gaddis and Barret Krupnow (2016), Starting out with
C++: From Control Structures through Objects

(Last update: Oct. 7, 2018)


The C++ string Class
 The string class offers several advantages over C-style
strings
 large body of member functions
 overloaded operators to simplify expressions

 Special data type supports working strings


#include <string>
String output - Example
The C++ string Class
 Can define string variables in programs:
string firstName, lastName;

 Can receive values with assignment operator:


firstName = “George”;
lastName = “Washington”;

 Can be displayed via cout


cout << firstName << “ ” << lastName;
The C++ string Class
 Objects of type string can be declared and initialized in
several ways:
string s1;
string s2 = "New York";
string s3(60, '*');
string s4 = s3;
string s5 = 'N'; //Error. s5 must hold a string, not a character
string s6 =78; //Error.

 If the string is not initialized, it represents the empty string.


Other ways to define C++ strings
Definition Meaning

string name; defines an empty string object

string myName(“Abu Bakar"); defines a string and initializes it with a literal.


myName: “Abu Bakar”
string yourName(myName); defines a string and initializes it with values from
other string.
yourName: “Abu Bakar”
string aName(myName, 5); defines a string and initializes it with string from
myName starting at position 5 (i.e., at 6th char.)
aName: “akar”
string newName(myname,0,3); defines a string and initializes it with 2 characters
from myname starting at position 3
aName: “Abu”
string noName(5, 'A'); defines string and initializes it to 5 'A’s
noName: “AAAAA”
Input into a string Object
 Use cin >> to read an item into a string:

string firstName;
cout << “Enter your first name : ”;
cin >> firstName;
String Input - example
String input : cin

 When the input stream cin is used, white space characters


(space, tab, newline etc.) are used
 Separators – read next data
 Terminators – terminate reading a value
String input getline()
 Use getline() to read a line of input (with spaces) into a
string object
 The getline() reads from the current position in the
input stream until a newline character is found

 The getline() takes 2 parameters:


 specifies an input stream eg. cin or file name
 specifies a string variable

 Example :
getline(cin, name)
String input : getline()
 The getline() with 3 parameters
 1st and 2nd as the getline() with 2 parameters
 3rd specifies the terminator character i.e. the character at which
getline() will stop reading from the input stream

 Example :
iFile.open(“String1.dat”);
getline(iFIle, name, ‘\t’);
string operator
string s3, s4;
string s1(“Hi");
string s2(“ Dad");

s3 = s1 + s2; // string concatenation


s4 = “Hello Mom!” // string assignment
Overloaded string Operators

OPERATOR MEANING

>> reads whitespace-delimited strings into


string object
<< outputs string object to a stream

= assigns string on right to string object on


left
+= appends string on right to end of contents
of string on left
continued …

OPERATOR MEANING

+ concatenates two strings

[] references character in string using array


notation
>, >=, <, relational operators for string comparison.
<=, ==, != Return true or false
continued …
string word1, phrase;
string word2 = " Dog";
cin >> word1; // user enters "Hot“, word1 has "Hot"
phrase = word1 + word2; // phrase has "Hot Dog"

phrase += " on a bun";

cout << phrase <<endl;// displays "Hot Dog on a bun"


string Methods

 Are behind many overloaded operators

 Categories
 assignment : assign, copy, data
 modification : append, clear, erase, insert,
replace, swap
 space management : capacity, empty, length,
resize, size
 substrings : find, substr
 comparison : compare

 See Table 10-7 for A list of functions


Length of a String
 The number of characters it contains including whitespace
characters, if any.

 Example:
string s1 = “UTM Skudai”;
int len = s1.length(); // len is 10
Modification of string objects
 Appending strings (to the end of a string)
string str1 = “UTM ”;
string str2 = “Skudai ”;

str1.append(str2); // str1 becomes “UTM Skudai ”


str2.append(str1); // str2 becomes “Skudai UTM Skudai”

 Inserting strings (within a string)


string str3 = “Skudai “;
string str4(“UTM Johor”); // str4 has “UTM Johor”
// insert str3 into str4 starting at position 4
str4.insert(4, str3); // str4 becomes “UTM Skudai Johor”
Substrings

 substr method returns a substring

 syntax is :
s.substr(position, length);

 Example:
string name = “objects”;
// copy a sub string from name starting at position 2 and taking 3 characters
string sub = name.substr(2, 3); // sub has “jec”

// copy a sub string from name starting at position 3


sub = name.substr(3, 15); // sub has “ects”

You might also like