C++ has in its definition a way to represent sequence of characters as an object of class. This class is called std:: string. String class stores the characters as a sequence of bytes with a functionality of allowing access to single byte character.
std:: string vs Character Array
- A character array is simply an array of characters can terminated by a null character. A string is a class which defines objects that be represented as stream of characters.
- Size of the character array has to allocated statically, more memory cannot be allocated at run time if required. Unused allocated memory is wasted in case of character array. In case of strings, memory is allocated dynamically. More memory can be allocated at run time on demand. As no memory is preallocated, no memory is wasted.
- There is a threat of array decay in case of character array. As strings are represented as objects, no array decay occurs.
- Implementation of character array is faster than std:: string. Strings are slower when compared to implementation than character array.
- Character array do not offer much inbuilt functions to manipulate strings. String class defines a number of functionalities which allow manifold operations on strings.
Operations on strings
1. getline() :- This function is used to store a stream of characters as entered by the user in the object memory.
2. push_back() :- This function is used to input a character at the end of the string.
3. pop_back() :- Introduced from C++11(for strings), this function is used to delete the last character from the string.
The initial string is : geeksforgeek The string after push_back operation is : geeksforgeeks The string after pop_back operation is : geeksforgeek
3. capacity() :- This function returns the capacity allocated to the string, which can be equal to or more than the size of the string. Additional space is allocated so that when the new characters are added to the string, the operations can be done efficiently.
4. resize() :- This function changes the size of string, the size can be increased or decreased.
5.shrink_to_fit() :- This function decreases the capacity of the string and makes it equal to its size. This operation is useful to save additional memory if we are sure that no further addition of characters have to be made.
The initial string is : geeksforgeeks is for geeks The string after resize operation is : geeksforgeeks The capacity of string is : 26 The new capacity after shrinking is : 13
7. begin() :- This function returns an iterator to beginning of the string.
8. end() :- This function returns an iterator to end of the string.
9. rbegin() :- This function returns a reverse iterator pointing at the end of string.
10. rend() :- This function returns a reverse iterator pointing at beginning of string.
The string using forward iterators is : geeksforgeeks The reverse string using reverse iterators is : skeegrofskeeg
11. copy(“char array”, len, pos) :- This function copies the substring in target character array mentioned in its arguments. It takes 3 arguments, target char array, length to be copied and starting position in string to start copying.
12. swap() :- This function swaps one string with other.
The new copied character array is : geeksforgeeks The 1st string before swapping is : geeksforgeeks is for geeks The 2nd string before swapping is : geeksforgeeks rocks The 1st string after swapping is : geeksforgeeks rocks The 2nd string after swapping is : geeksforgeeks is for geeks
For more functions :
This article is contributed by Manjeet Singh .If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- How to convert a class to another class type in C++?
- std::any Class in C++
- std:: valarray class in C++
- Structure vs class in C++
- Array class in C++
- Virtual base class in C++
- Difference between namespace and class
- Friend class and function in C++
- C++ | Class and Object | Question 3
- C++ | Class and Object | Question 2
- C++ | Class and Object | Question 6
- C++ | Class and Object | Question 5
- C++ | Class and Object | Question 4
- C++ | Class and Object | Question 3
- Why is the size of an empty class not zero in C++?