OObbjjeecctt oorriieenntteedd PPrrooggrraammmmiinngg 
wwiitthh CC++++ 
MMaanniippuullaattiinngg SSttrriinnggss 
By 
Nilesh Dalvi 
LLeeccttuurreerr,, PPaattkkaarr--VVaarrddee CCoolllleeggee.. 
http://www.slideshare.net/nileshdalvi01
Introduction 
• A string is a sequence of characters. 
• Strings can contain small and capital letters, 
numbers and symbols. 
• Each element of string occupies a byte in the 
memory. 
• Every string is terminated by a null 
character(‘0’). 
• Its ASCII and Hex values are zero. 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
Introduction 
• The string is stored in the memory as follows: 
char country [6] = "INDIA"; 
I N D I A '0' 
73 78 68 73 65 00 
• Each character occupies a single byte in 
memory as shown above. 
• The various operations with strings such as 
copying, comparing, concatenation, or 
replacing requires a lot of effort in ‘C’ 
programming. 
• These string is called as C-style string. 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
String library functions 
Functions Description 
strlen() Determines length of string. 
strcpy() Copies a string from source to destination 
strcmp() Compares characters of two strings. 
stricmp() Compares two strings. 
strlwr() Converts uppercase characters in strings to lowercase 
strupr() Converts lowercase characters in strings to uppercase 
strdup() Duplicates a string 
strchr() Determines first occurrence of given character in a string 
strcat() Appends source string to destination string 
strrev() Reversing all characters of a string 
strspn() finds up at what length two strings are identical 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
Program explains above functions 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
#include <iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
char name[10]; 
cout << "Enter name: " << endl; 
cin >> name; 
cout << "Length :" << strlen (name)<< endl; 
cout << "Reverse :" << strrev (name)<< endl; 
return 0; 
} 
Output: 
Enter name: 
ABC 
Length :3 
Reverse :CBA
Moving from C-String to C++String 
• Manipulation of string in the form of char 
array requires more effort, C uses library 
functions defined in string.h. 
• To make manipulation easy ANSI committee 
added a new class called string. 
• It allows us to define objects of string type 
and they can e used as built in data type. 
• The programmer should include the 
string header file. 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
Declaring and initializing string objects 
• In C, we declare strings as given below: 
char name[10]; 
• Whereas in C++ string is declared as an 
object. 
• The string object declaration and 
initialization can be done at once using 
constructor in string class. 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
String constructors 
Constructors Meaning 
string (); Produces an empty string 
string (const char * text); Produces a string object from a 
null ended string 
string (const string & text); Produces a string object from 
other string objects 
We can declare and initialize string objects as follows: 
string text; // Declaration of string objects 
//using construtor without argument 
string text("C++"); //using construtor with one argument 
text1 = text2; //Asssignment of two string objects 
text = "C++"+ text1; //Concatenation of two strings objects 
Nilesh Dalvi, Lecturer@Patkar-Varde College, 
Goregaon(W).
Performing assignment and concatenation 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
#include <iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
string text; 
string text1(" C++"); 
string text2(" OOP"); 
cout << "text1 : "<< text1 << endl; 
cout << "text2 : "<< text2 << endl; 
text = text1; // assignment operation 
text = text1 + text2; // concatenation 
cout << "Now text : "<<text << endl; 
return 0; 
} 
Output: 
text1 : C++ 
text2 : OOP 
Now text : C++ OOP
String manipulating functions 
Functions Description 
append() Adds one string at the end of another string 
assign() Assigns a specified part of string 
at() Access a characters located at given location 
begin() returns a reference to the beginning of a string 
capacity() calculates the total elements that can be stored 
compare() compares two strings 
empty() returns false if the string is not empty, otherwise true 
end() returns a reference to the termination of string 
erase() erases the specified character 
find() finds the given sub string in the source string 
insert() inserts a character at the given location 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
String manipulating functions 
Functions Description 
length() calculates the total number of elements in string 
replace() substitutes the specified character with the given string 
resize() modifies the size of the string as specified 
size() provides the number of character n the string 
swap() Exchanges the given string with another string 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
String Relational Operators 
Operator Working 
= Assignment 
+ joining two or more strings 
+= concatenation and assignment 
== Equality 
!= Not equal to 
< Less than 
<= Less than or equal 
> Greater than 
>= Greater than or equal 
[] Subscription 
<< insertion 
>> Extraction 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
Comparing two strings using operators 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("OOP"); 
string s2("OOP"); 
if(s1 == s2) 
cout << "n Both strings are identical"; 
else 
cout << "n Both strings are different"; 
return 0; 
}
Comparing two strings using compare() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("abd"); 
string s2("abc"); 
int d = s1.compare (s2); 
if(d == 0) 
cout << "n Both strings are identical"; 
else if(d > 0) 
cout << "n s1 is greater than s2"; 
else 
cout << "n s2 is greater than s1"; 
return 0; 
}
Inserting string using insert() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("abcpqr"); 
string s2("mno"); 
cout << "S1: " << s1 << endl; 
cout << "S2: " << s2 << endl; 
cout << "After Insertion: " << endl; 
s1.insert(3,s2); 
cout << "S1: " << s1 << endl; 
cout << "S2: " << s2 << endl; 
return 0; 
} 
Output :: 
S1: abcpqr 
S2: mno 
After Insertion: 
S1: abcmnopqr 
S2: mno
Remove specified character s using erase() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("abc1234pqr"); 
cout << "S1: " << s1 << endl; 
cout << "After Erase : " << endl; 
s1.erase(3,5); 
cout << "S1: " << s1 << endl; 
return 0; 
} 
Output : 
S1: abc1234pqr 
After Erase : 
S1: abcqr
String Attributes: size() 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
#include<iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
string s1; 
cout << "Size : " << s1.size () << endl; 
s1 = "abc"; 
cout << "Size : " << s1.size () << endl; 
return 0; 
} 
Output :: 
Size : 0 
Size : 3
String Attributes: length() 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
#include<iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
//length () : determines the length i.e. no. of characters 
string s1; 
cout << "Length : " << s1.length () << endl; 
s1 = "hello"; 
cout << "Length : " << s1.length () << endl; 
return 0; 
} 
Output :: 
Length : 0 
Length : 5
String Attributes: capacity() 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
#include<iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
//capacity () : determines capacity of string object 
// i.e. no. of characters it can hold. 
string s1; 
cout << "Capacity : " << s1.capacity () << endl; 
s1 = "hello"; 
cout << "Capacity : " << s1.capacity () << endl; 
s1 = "abcdefghijklmnopqr"; 
cout << "Capacity : " << s1.capacity () << endl; 
return 0; 
} 
Output : 
Capacity : 15 
Capacity : 15 
Capacity : 31
String Attributes: empty() 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
#include<iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
string s1; 
cout << "Empty : " <<( s1.empty ()? "True" : "False") << endl; 
s1 = "hello"; 
cout << "Empty : " <<( s1.empty ()? "True" : "False") << endl; 
return 0; 
}
Accessing elements of string : at() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("abcdefghijkl"); 
for(int i = 0; i < s1.length (); i++) 
cout << s1.at(i); // using at() 
for(int i = 0; i < s1.length (); i++) 
cout << s1. [i]; // using operator [] 
return 0; 
}
Accessing elements of string : find() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("TechTalks : Where everything is out of box!"); 
int x = s1.find ("box"); 
cout << "box is found at " << x << endl; 
return 0; 
} 
Output :: 
box is found at 39
Exchanging content of two strings: swap() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("ttt"); 
string s2("rrr"); 
cout << "S1 :" << s1 << endl; 
cout << "S2 :" << s2 << endl; 
s1.swap (s2); 
cout << "S1 :" << s1 << endl; 
cout << "S2 :" << s2 << endl; 
return 0; 
} 
Output : 
S1 :ttt 
S2 :rrr 
S1 :rrr 
S2 :ttt
Miscellaneous functions: assign() 
#include<iostream> 
#include<string> 
using namespace std; 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). 
int main() 
{ 
string s1("c plus plus"); 
string s2; 
s2.assign (s1, 0,6); 
cout << s2; 
return 0; 
} 
Output : 
c plus
Miscellaneous functions: begin() 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
Miscellaneous functions: end() 
Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
Strings

Strings

  • 1.
    OObbjjeecctt oorriieenntteedd PPrrooggrraammmmiinngg wwiitthh CC++++ MMaanniippuullaattiinngg SSttrriinnggss By Nilesh Dalvi LLeeccttuurreerr,, PPaattkkaarr--VVaarrddee CCoolllleeggee.. http://www.slideshare.net/nileshdalvi01
  • 2.
    Introduction • Astring is a sequence of characters. • Strings can contain small and capital letters, numbers and symbols. • Each element of string occupies a byte in the memory. • Every string is terminated by a null character(‘0’). • Its ASCII and Hex values are zero. Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 3.
    Introduction • Thestring is stored in the memory as follows: char country [6] = "INDIA"; I N D I A '0' 73 78 68 73 65 00 • Each character occupies a single byte in memory as shown above. • The various operations with strings such as copying, comparing, concatenation, or replacing requires a lot of effort in ‘C’ programming. • These string is called as C-style string. Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 4.
    String library functions Functions Description strlen() Determines length of string. strcpy() Copies a string from source to destination strcmp() Compares characters of two strings. stricmp() Compares two strings. strlwr() Converts uppercase characters in strings to lowercase strupr() Converts lowercase characters in strings to uppercase strdup() Duplicates a string strchr() Determines first occurrence of given character in a string strcat() Appends source string to destination string strrev() Reversing all characters of a string strspn() finds up at what length two strings are identical Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 5.
    Program explains abovefunctions Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). #include <iostream> #include <string> using namespace std; int main() { char name[10]; cout << "Enter name: " << endl; cin >> name; cout << "Length :" << strlen (name)<< endl; cout << "Reverse :" << strrev (name)<< endl; return 0; } Output: Enter name: ABC Length :3 Reverse :CBA
  • 6.
    Moving from C-Stringto C++String • Manipulation of string in the form of char array requires more effort, C uses library functions defined in string.h. • To make manipulation easy ANSI committee added a new class called string. • It allows us to define objects of string type and they can e used as built in data type. • The programmer should include the string header file. Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 7.
    Declaring and initializingstring objects • In C, we declare strings as given below: char name[10]; • Whereas in C++ string is declared as an object. • The string object declaration and initialization can be done at once using constructor in string class. Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 8.
    String constructors ConstructorsMeaning string (); Produces an empty string string (const char * text); Produces a string object from a null ended string string (const string & text); Produces a string object from other string objects We can declare and initialize string objects as follows: string text; // Declaration of string objects //using construtor without argument string text("C++"); //using construtor with one argument text1 = text2; //Asssignment of two string objects text = "C++"+ text1; //Concatenation of two strings objects Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 9.
    Performing assignment andconcatenation Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). #include <iostream> #include <string> using namespace std; int main() { string text; string text1(" C++"); string text2(" OOP"); cout << "text1 : "<< text1 << endl; cout << "text2 : "<< text2 << endl; text = text1; // assignment operation text = text1 + text2; // concatenation cout << "Now text : "<<text << endl; return 0; } Output: text1 : C++ text2 : OOP Now text : C++ OOP
  • 10.
    String manipulating functions Functions Description append() Adds one string at the end of another string assign() Assigns a specified part of string at() Access a characters located at given location begin() returns a reference to the beginning of a string capacity() calculates the total elements that can be stored compare() compares two strings empty() returns false if the string is not empty, otherwise true end() returns a reference to the termination of string erase() erases the specified character find() finds the given sub string in the source string insert() inserts a character at the given location Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 11.
    String manipulating functions Functions Description length() calculates the total number of elements in string replace() substitutes the specified character with the given string resize() modifies the size of the string as specified size() provides the number of character n the string swap() Exchanges the given string with another string Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 12.
    String Relational Operators Operator Working = Assignment + joining two or more strings += concatenation and assignment == Equality != Not equal to < Less than <= Less than or equal > Greater than >= Greater than or equal [] Subscription << insertion >> Extraction Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 13.
    Comparing two stringsusing operators #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("OOP"); string s2("OOP"); if(s1 == s2) cout << "n Both strings are identical"; else cout << "n Both strings are different"; return 0; }
  • 14.
    Comparing two stringsusing compare() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("abd"); string s2("abc"); int d = s1.compare (s2); if(d == 0) cout << "n Both strings are identical"; else if(d > 0) cout << "n s1 is greater than s2"; else cout << "n s2 is greater than s1"; return 0; }
  • 15.
    Inserting string usinginsert() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("abcpqr"); string s2("mno"); cout << "S1: " << s1 << endl; cout << "S2: " << s2 << endl; cout << "After Insertion: " << endl; s1.insert(3,s2); cout << "S1: " << s1 << endl; cout << "S2: " << s2 << endl; return 0; } Output :: S1: abcpqr S2: mno After Insertion: S1: abcmnopqr S2: mno
  • 16.
    Remove specified characters using erase() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("abc1234pqr"); cout << "S1: " << s1 << endl; cout << "After Erase : " << endl; s1.erase(3,5); cout << "S1: " << s1 << endl; return 0; } Output : S1: abc1234pqr After Erase : S1: abcqr
  • 17.
    String Attributes: size() Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). #include<iostream> #include<string> using namespace std; int main() { string s1; cout << "Size : " << s1.size () << endl; s1 = "abc"; cout << "Size : " << s1.size () << endl; return 0; } Output :: Size : 0 Size : 3
  • 18.
    String Attributes: length() Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). #include<iostream> #include<string> using namespace std; int main() { //length () : determines the length i.e. no. of characters string s1; cout << "Length : " << s1.length () << endl; s1 = "hello"; cout << "Length : " << s1.length () << endl; return 0; } Output :: Length : 0 Length : 5
  • 19.
    String Attributes: capacity() Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). #include<iostream> #include<string> using namespace std; int main() { //capacity () : determines capacity of string object // i.e. no. of characters it can hold. string s1; cout << "Capacity : " << s1.capacity () << endl; s1 = "hello"; cout << "Capacity : " << s1.capacity () << endl; s1 = "abcdefghijklmnopqr"; cout << "Capacity : " << s1.capacity () << endl; return 0; } Output : Capacity : 15 Capacity : 15 Capacity : 31
  • 20.
    String Attributes: empty() Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). #include<iostream> #include<string> using namespace std; int main() { string s1; cout << "Empty : " <<( s1.empty ()? "True" : "False") << endl; s1 = "hello"; cout << "Empty : " <<( s1.empty ()? "True" : "False") << endl; return 0; }
  • 21.
    Accessing elements ofstring : at() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("abcdefghijkl"); for(int i = 0; i < s1.length (); i++) cout << s1.at(i); // using at() for(int i = 0; i < s1.length (); i++) cout << s1. [i]; // using operator [] return 0; }
  • 22.
    Accessing elements ofstring : find() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("TechTalks : Where everything is out of box!"); int x = s1.find ("box"); cout << "box is found at " << x << endl; return 0; } Output :: box is found at 39
  • 23.
    Exchanging content oftwo strings: swap() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("ttt"); string s2("rrr"); cout << "S1 :" << s1 << endl; cout << "S2 :" << s2 << endl; s1.swap (s2); cout << "S1 :" << s1 << endl; cout << "S2 :" << s2 << endl; return 0; } Output : S1 :ttt S2 :rrr S1 :rrr S2 :ttt
  • 24.
    Miscellaneous functions: assign() #include<iostream> #include<string> using namespace std; Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W). int main() { string s1("c plus plus"); string s2; s2.assign (s1, 0,6); cout << s2; return 0; } Output : c plus
  • 25.
    Miscellaneous functions: begin() Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).
  • 26.
    Miscellaneous functions: end() Nilesh Dalvi, Lecturer@Patkar-Varde College, Goregaon(W).