In this lesson, you will learn about string manipulation in C++. We’ll cover all the various operations that you can do with strings.
- C-Type Strings
- C++ String Object
- String Manipulation Functions from C
- String Manipulation with C++ String Class
1. C-Type Strings
As you know, C++ supersets the C language. Therefore, it supports string functionalities from C. This is also called C-String. Strings in C are 1-dimensional array of characters that is terminated by a null character, ‘\0’ (ASCII code for 0).
To define a C-string in C++ use the code below;
char name[] = "Kindson";
In the code above, the string name is created and holds 7 characters.
char str[4] = "Kindson"; char str[] = {'K','i','n', 'd', 's', 'o', 'n', '\0'}; char str[4] = {'H','e','l', 'l', 'o', '\0'};
The program below uses a C-type string to read a name from the input. Then displays the name to the output.
int main () { //you must provide a size char name[20]; cout << "Please enter your name: "; cin >> name; cout << "Hello " << name << endl; }
2. C++ String Object
C++ also provides it’s own string class. So you can create string object. This class is provided by the standard C++ library. Unlike character array from C, the C++ string does not have a fixed length. For example, the code below, reads and prints the user’s name but without knowing the size of the name:
// Example with C++ String int main () { // size is not needed string name; cout << "What is your name: "; cin >> name; cout << "Welcome " << name << endl; }
3. String Manipulation Methods (from C)
These are methods used for string manipulation. You need to understand these functions to be get things done with strings.
See table below:
| SN | Method and description |
|---|---|
| 1 | strcpy(string1, string2) Copies string string2 into string string1. |
| 2 | strcat(string1, string2) Concatenates string string2 onto the end of string string1. |
| 3 | strlen(string1) Returns the length of string string1. |
| 4 | strcmp(string1, string2) Returns 0 if string1 and string2 are the same; less than 0 if string1<string2; greater than 0 if string1 > string2. |
| 5 | strchr(string1, ch); Returns a pointer to the first occurrence of character ch in string string1. |
| 6 | strstr(s1, s2) Returns a pointer to the first occurrence of string string2 in string string1. |
The functions above derives from C. Therefore to use them, you need to include <cstring> header in your program.
4. String Manipulation With C++ String Class
Let’s now see how to do the same thing using C++ string class
- Concatenation – Combines two string into one. Simply use the + operator. See example below
- String length – Use length() method
- Searching strings – Accessing a character within a string. Use the find() method
- Substrings – Returning part of a string. Use the substr() method.
- Replacing – Replacing part of a string. Use the replace() method
- Insertion – Inserting character(s) into a string. Using the insert() method
- Erase – Removing part of a string. Use the erase() method.
The program below shows how these methods can be applied.
// String manipulation using methods int main () { string string1 = "Beginner "; string string2 = "to Expert "; string string3 = "Tutorials"; string string4 = string1 + string2 + string3; int len = string4.length(); cout << string4 << endl; cout << "Length of string1 is: " << len <<endl; cout <<"Expert is at position " << string2.find("Expert") <<endl; cout << "Part of string 2: " << string2.substr(3,8)<<endl; cout << "Replacing 'Expert': " << string4.replace(12, 17, "Guru")<<endl; cout << "Insertion: "<< string4.insert(0, " by Kindson")<<endl; cout << "Erasing: " << string3.erase(0,3)<<endl; return 0; }
If you successfully run the program, you will have the output:
Beginner to Expert Tutorials Length of string1 is: 28 Expert is at position3 Part of string 2: Expert Replacing 'Expert': Beginner to Guru Insertion: by KindsonBeginner to Guru Erasing: orials
I would recommend you take some time to understand how it works to produce the outputs.