All You Need to Know About C++ String

C++ is a widely popular general-purpose programming language based partially on Object-Oriented Programming (OOPs) concepts. It allows you to work with text and characters through C++ strings. In this article, you will learn everything about the String class.

What is a C++ String?

C++ string is a way of representing and working with texts and characters. It has two different types of string representations: C-style character string and String class introduced in C++.

C-Style Character String

The C-style character string was a part of the C programming language and is now supported in C++. It is like a one-dimensional character array that holds a character sequence and is terminated with a null character. Thus, if you create a C-style character string to keep the word “Hello,” it will contain the characters, ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0.’

Here, you only need to ask the compiler to hold the word “Hello” in a string. But it will still include a character “\0” in the end by default. Look at an example to see how you can use the character array to create and store a C-style character string in a variable.

#include <iostream>

using namespace std;

int main (){

   char greet[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   cout << "This is a greeting message: ";

   cout << greet << endl;

   return 0;

}

Output:

C_Plus_Plus_String_1

Add Another Star to Your Performance Evaluation

Learn from industry experts for FREEStart Learning
Add Another Star to Your Performance Evaluation

C++ String Class Introduced in C++

C++ is based on the OOPs concept; it enables you to represent the string as an object of the C++ String class (std:: string). The class allows you to declare a string variable quickly, and store any sequence of characters in it. Here’s an example of representing a string with the help of the String class.

#include <iostream>

using namespace std;

int main(){

    string greet = "Hello";

    cout << "This is a greeting message: ";

    cout<<greet<<endl;

}

Output:

C_Plus_Plus_String_2

As you can see in the above output, it eliminates the need for declaring an array to hold characters.

What is the Difference Between C++ String and Character Array?

Although both the C-style character string and the C++ String class are used for string representation, there are a few differences. Some of the primary differences are:

  • Character array is an array, but a string is a class that defines an object.
  • Character array size is pre-allocated statically. Hence, extra memory is not available during runtime, and it wastes the memory that is not used. Since string size is not pre-allocated, there is no wastage, and extra memory is available during run time.
  • Character array has the risk of array decay, but that is not the case with string.
  • Strings are slower than character arrays when it comes to implementation.
  • The String class offers more in-built functions to work with and manipulate strings.

C++ String Built-In Functions to Perform Operations on Strings

As mentioned in the previous section, the C++ String class provides many built-in, predefined functions to manipulate strings. In this section, you will go through some primary functions and see them in action, along with examples.

C++ String Input Functions

The input functions help add or remove a character or string to a string. Examples of input functions are:

Function

Description

getline()

Used to read and store a string that the user enters through the input stream

push_back()

Inputs a new character to the string’s end

pop_back()

Pops out (deletes) a string’s last character (introduced from C++11)

Example: Using C++ String Input Functions

#include<iostream>

#include<string>

using namespace std;

int main(){

// Declaring a string variable

string s;

    cout << "Enter a string: ";   

// Using getline() to accept input

// We will give Simplilearn as the input

getline(cin,s);

// Displaying the entered string

cout << "This is initial string : ";

cout << s << endl;

// Inserting a character i at the end of the string

// using the push_back function

s.push_back('i');

// Displaying the string after push_back

cout << "The new string is : ";

cout << s << endl;

// Deleting the i from the end using pop_back

s.pop_back();

// Displaying the string after pop_back

cout << "After pop_back operation, the string is : ";

cout << s << endl;

return 0;

}

Output:

C_Plus_Plus_String_3

C++ String Iterator Functions

As the name gives out, the iterator functions are used to work with the iterators that traverse through each character of a string.

Function

Description

begin()

Returns the iterator to the beginning

end()

Returns the iterator to the end

rbegin()

Returns a reverse iterator that points to the end

rend()

Returns a reverse iterator that points to the start

Example: Using String Class’s Iterator Functions

#include<iostream>

#include<string>

using namespace std;

int main(){

string s = "Simplilearn";

// Declaring the iterator

std::string::iterator iter;

// Declaring iterator for reverse functions

std::string::reverse_iterator iter1;

// Displaying string

cout << "Using forward iterators : ";

for (iter=s.begin(); iter!=s.end(); iter++)

cout << *iter;

cout << endl;

// Displaying reverse string

cout << "Using reverse iterators : ";

for (iter1=s.rbegin(); iter1!=s.rend(); iter1++)

cout << *iter1;

cout << endl;

return 0;

}

Output:

C_Plus_Plus_String_4

Here, you used the for loop in the code and both forward and reverse iterators to traverse through the string. The first for loop used a forward iterator and kept traversing and printing characters until it reached the end of the string. In the second for loop, you used the reverse iterator that started from the end and kept traversing and printing the characters until they reached the string’s start.

Full Stack Web Developer Course

To become an expert in MEAN StackView Course
Full Stack Web Developer Course

C++ String Capacity Functions

The C++ string capacity functions help to work with the size and capacity of the string. The primary functions of the capacity type are:

Function

Description

capacity()

Returns the capacity allocated to a string by the compiler

resize()

Allows increasing or decreasing the size of the string

length()

Returns the size of the string

shrink_to_fit()

Decreases and makes the capacity equal to the minimum to save memory

Example: Using String Class’s Capacity Functions

#include<iostream>

#include<string>

using namespace std;

int main(){

string s = "C++ Programming is Awesome!";

cout << "Initial string : ";

cout << s << endl;

// Resizing string using resize()

s.resize(15);

cout << "String after resizing : ";

cout << s << endl;

// Using the capacity function

cout << "String's capacity is : ";

cout << s.capacity() << endl;

// Using the length function

cout<<"String's length is : "<<s.length()<<endl;

// Using the shrink_to_fit function

s.shrink_to_fit();

cout << "Capacity post shrinking is : ";

cout << s.capacity() << endl;

return 0;

}

Output:

C_Plus_Plus_String_5

C++ String Manipulating Functions

The manipulating functions allow you to manipulate a string with operations such as copying and swapping.

Function

Description

copy(“char array”, len, pos)

It copies a substring from the char array and copies it. The len and pos parameters define the length of the substring to be copied and starting position from where the copies begin, respectively.

swap()

Swaps one string with another

Example: Using String Class’s Manipulating Functions

#include<iostream>

#include<string>

using namespace std;

int main(){

string s1 = "Welcome, learn C++ with Simplilearn here";

string s2 = "C++ is Awesome!";

// Declaring character array

char ch_arr[80];

// Using copy() to copy elements from s1 and

// placing it in ch_arr

s1.copy(ch_arr,26,9);

// Printing the array

cout << "Character array : ";

cout << ch_arr << endl << endl;

// Strings before swapping

cout << "String1 before swapping is : ";

cout << s1 << endl;

cout << "String2 before swapping is : ";

cout << s2 << endl;

// using swap() function

s1.swap(s2);

// Strings after swapping

cout << "String1 after swapping is : ";

cout << s1 << endl;

cout << "String2 after swapping is : ";

cout << s2 << endl;

return 0;

}

Output:

C_Plus_Plus_String_6

Are you a web developer or interested in building a website? Enroll for the Full Stack Web Developer - MEAN Stack Master's Program. Explore the course preview!

Conclusion

In this article, you learned everything about the C++ String class, character array, and the difference between the two. You have also gone through some of the primary in-built String class functions that allow you to perform various operations on strings, along with examples. You can now use multiple functions to work with texts and strings in C++. Learning to work with C++ strings is essential, as you might have to take various inputs and give outputs through your app. 

If you want to learn more about such fundamental C++ concepts, refer to Simplilearn’s C++ Tutorial for Beginners. The tutorial covers basic but most essential concepts like a classes, array and for loop in C++. Thus, it is adept at helping you set the foundation to excel in C++ development.

Are you looking to be an expert programmer? If yes, Simplilearn’s Post Graduate Program in Full Stack Web Development in collaboration with Caltech CTME should be your next stop.

Have any questions for us? Leave them in the comments section of this article. Our experts will get back to you on the same, ASAP!

About the Author

SimplilearnSimplilearn

Simplilearn is one of the world’s leading providers of online training for Digital Marketing, Cloud Computing, Project Management, Data Science, IT, Software Development, and many other emerging technologies.

View More
  • Disclaimer
  • PMP, PMI, PMBOK, CAPM, PgMP, PfMP, ACP, PBA, RMP, SP, and OPM3 are registered marks of the Project Management Institute, Inc.