A string is a collection of characters. C++ programming language supports both C string as well as standard C++ library string. In C++, string is an object of std::string class.
C Style String
The C style string of C language is also supported in C++ programming language. C string is an array of char and terminated by a
null character
'\0'.
String Declaration
There are two different way to declare C style string in C++ programming:
1. Through array of character.
2. Through pointers.
String Initialization
String initialization is done by passing character in character (
char) array end with null (
\0). String initialization is also done by passing the value in string name within double inverted comma (" ");
char stringName[8]={'w','e','l','c','o','m','e','\0'};
char stringName[]="welcome";
Memory Representation of String
C++ String Example 1
#include<iostream>
using namespace std;
int main(){
char message1[8]={'w','e','l','c','o','m','e','\0'};
char message2[]="programmer";
cout<<"print message1 :"<<message1<<endl;
cout<<"print message2 :"<<message2;
return 0;
}
Output:
print message1 :welcome
print message2 :programmer
String function used in C as well as C++
Function |
Example |
Description |
strlen() |
strlen(s1) |
Return length of string s1. |
strcmp() |
strcmp(s1,s2) |
Compare string s1 and |
strcpy() |
strcpy(s1,s2) |
Copy string s2 into string s1. |
strcat() |
strcat(s1,s2) |
Concatenate string s2 at the end of string s1. |
strchr() |
strchr(s1,ch) |
Search character ch in string s1. |
strstr() |
strstr(s1,s2) |
Search string s2 in string s1. |
C++ String Example 2
#include <iostream>
#include <cstring>
using namespace std;
int main () {
char s1[10] = "Hello";
char s2[10] = "World";
char ch='l';
char s3[10];
int len ;
// lenghth of s1
len = strlen(s1);
cout << "strlen(s1) : " << len << endl;
// copy s1 into s3
strcpy( s3, s1);
cout << "strcpy( s3, s1) : " << s3 << endl;
// comperesion s1 and s2
if (strcmp(s1,s2)==true){
cout<<"strcmp(s1,s2) :"<< "string are equal"<<endl;
}
else{
cout<<"strcmp(s1,s2) :"<<"string are not equal return :
"<< strcmp(s1,s2)<<endl;
}
// concatenates s1 and s2
strcat( s1, s2);
cout << "strcat( s1, s2): " << s1 << endl;
// search ch in s2
if (strchr(s2, ch)){
cout << ch << " is present in :" << s2 << endl;
}
else{
cout << ch << " is not present in :" << s2 << endl;
}
//search s3 in s1
if (strstr(s1, s3)){
cout << s3 << " is present in :" << s1 << endl;
}
else{
cout << s3 << " is not present in :" << s1 << endl;
}
return 0;
}
Output:
strlen(s1) : 5
strcpy( s3, s1) : Hello
strcmp(s1,s2) :string are not equal return :-15
strcat( s1, s2): HelloWorld
l is not present in :
Hello is present in :HelloWorld
C++ Standard Library String
C++ provides a string class to overcome the complexity and inefficiency of using C style string in C++ programming. C++ uses standard library
<string> to handle all manipulation done over string object.
C++ String Example 3
#include<iostream>
#include<string>
using namespace std;
int main(){
string str1= "welcome";
string str2;
cout<<"Enter string"<<endl;
cin>>str2;
cout<< str1<< endl;
cout<<"Your enter string is :"<< str2;
return 0;
}
Output:
Enter string
programmer
welcome
Your enter string is : programmer
In the above program
<string> is the standard library that handles string manipulation and string in main() function is string class.
In C++,
cin and
>> operator read only one word of a string, the compiler treats space as the termination of string provided in string as value.
C++ string class supports many member functions, constructors and operators for manipulating string objects.
C++ String functions
Function |
Description |
size() |
Return the number of characters in the string |
length() |
Return the number of elements in a string |
capacity() |
Gives the total elements that can be stored |
max_size() |
Gives the maximum possible size of a string of string object |
insert() |
Insert character at a specific location |
replace() |
Replace specific character within a given string |
erase() |
Removes characters as specified |
append() |
Append a part of the string to another string |
copy() |
Copy sequence of character from string |
compare() |
Compare string against the invoking string |
swap() |
Swap value of two string |
getline() |
Read a line of string |
C++ string also uses
cin.get(ch) member function of
istream class defined in
<iostream> the member function cin.get(ch) reads the next character, even if it is a space, from the input and assigns it to the variable ch.
String Example 4
This program illustrate the use of
size(),
length(),
capacity(),
max_size() of string function.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str="String program";
cout << "size: " << str.size() << endl;
cout << "length: " << str.length() << endl;
cout << "capacity: " << str.capacity() << endl;
cout << "max_size: " << str.max_size() << endl;
return 0;
}
Output:
size: 14
length: 14
capacity: 15
max_size: 9223372036854775807
String Example 5
This program illustrate the use of
insert(),
replace(),
erase() of string function.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str;
string str1="first string";
string str2="second hello";
string str3="third welcome";
str.insert(0,str1);
str1.insert(6,str2,7,11);
cout << "after insert str: " << str << endl;
cout<< "after insert str1: " << str1<< endl;
str2.replace(7,5,str3);
cout<<"after replace str2: "<< str2<< endl;
str3.erase(2,6);
cout<<"afrer erase str3: "<<str3<< endl;
return 0;
}
Output:
after insert str: first string
after insert str1: first hellostring
after replace str2: second third welcome
after erase str3: thlcome
String Example 6
This program illustrates the use of
cin.get() of string function.
#include <iostream>
using namespace std;
int main()
{
char ch[10];
cout<<"Enter char string :";
cin.get(ch, 10);
cout << "Your char string is :" << ch << endl;
return 0;
}
Output:
Enter char string :welcome
Your char string is :welcome
In the above program parameters passed in cin.get
(ch,10) function represents variable name and size of variable respectively.
String Example 7
This program illustrates the use of
getline() of string function.
#include <iostream>
using namespace std;
int main()
{
string str;
cout<<"Enter string :";
getline(cin,str);
cout << "Your string is :" << str << endl;
return 0;
}
Output:
Enter string :welcome programmer
Your string is :welcome programmer
getline() function take input stream cin in the first parameter and string object (str) in the second parameter.
In C++ it is prefer to use getline() function instead of using cin>> and cin.get().