String Functions in C++ (original) (raw)

A string is referred to as an array of characters. In C++, a stream/sequence of characters is stored in a char array. C++ includes the std::string class that is used to represent strings. It is one of the most fundamental datatypes in C++ and it comes with a huge set of inbuilt functions. In this article, will look at the functions of string computations.

What is std::string?

The std::string is a class in C++ since C++98. This class is the standard representation for a text string. It includes some typical string operations like find, replace, concatenate, compare etc. It is present in ****** header file.

Declaration and Initialization of String

std::string company = "GeeksforGeeks!";

Commonly Used String Functions in C++

The std::string class contains functions to provide some common string operations. The below table contains some of the most commonly used functions in C++:

S. No. Category Functions and Operators Functionality
1. String Length **length() or size() It will return the length of the string.
2. Accessing Characters **Indexing (using array[index]) To access individual characters using array indexing.
**at() Used to access a character at a specified index.
3. Appending and Concatenating Strings **+ Operator + operator is used to concatenate two strings.
**append() The append() function adds one string to the end of another.
4. String Comparison **== Operator You can compare strings using the == operator.
**compare() The compare() function returns an integer value indicating the comparison result.
5. Substrings **substr() Use the substr() function to extract a substring from a string.
6. Searching **find() The find() function returns the position of the first occurrence of a substring.
7. Modifying Strings **replace() Use the replace() function to modify a part of the string.
**insert() The insert() function adds a substring at a specified position.
**erase() Use the erase() function to remove a part of the string.
8. Conversion **c_str() To obtain a C-style string from a std::string, you can use the c_str() function.

**Note: The above functions only works for C++ Style strings (std::string objects) not for C Style strings (array of characters).

1. String Length - length() or size()

We can find the length of the string (number of characters) using either **length() or size() function of the std::string class.

**Syntax

string_object.**size()
_or
string_object.**length()

**Parameters

**Return Value

**Example

std::string text = "geeksforGeeks";
int length = text.length();
//or
int length = text.size();

It will return the length of the string **text which is 13.

2. Accessing Characters - at()

Generally, we can access the character of a string using the **[] array subscript operator and indexing. But std::string also has a function named **at() which can be used to access the characters of the string.

Syntax

string_object.at(_index**);**

**Parameters

**Return Value

**Example

std::string str = "GEEKSFORGEEKS";
std::cout << str.at(3);

The std::cout will print K on the console as it is the character present at index 3.

3. Concatenating Strings - append() or + Operator

We can concatenate string in C++ using two methods:

1. + Operator

The + operator is overloaded in the std::string class to perform string concatenation.

**Syntax

string_object1 + string_object2

**Example

std::string firstName = "Geeks";
std::string lastName = "forGeeks";
std::string fullName = firstName + " " + lastName;

+ operator is used to concatenate two strings. The string fullName will be "GeeksforGeeks".

2. append()

The append() function is another member function to concatenate two strings.

**Syntax

string_object1.**append(_string2)

**Parameters

**Return Value

std::string base = "Hey! Geeks";
base.append(" Welcome to GeeksforGeeks!"); // Append a string

The append() function adds one string to the end of another.

4. String Comparison - compare() or == Operator

Just like the concatenation, we can do the string comparison using two methods:

1. == Operator

The equality operator can be used to compare the two strings as it is overloaded for this operation in the std::string class.

**Syntax

string_object1 == string_object2

This will return **true if both the strings are equal, otherwise returns **false.

**Example

std::string str1 = "apple";
std::string str2 = "banana";
if (str1 == str2) {
std::cout << "Strings are equal";
}
else {
std::cout << "Strings are not equal";
}

Here, "Strings are not equal" will be printed as the == operator will return **false.

2. compare()

The compare() function is a member function of std::string class which can be used to compare two strings.

**Syntax

str1.compare(_str2**);**

**Parameters

**Return Value

**Example

string str1 = "Geeks";
string str2: = "Geeksfor";
int result = str1.**compare(str2);

The result will contain a value less than zero as str2 is greater than str1.

We can also compare the substring of str2 using the compare function():

str1.compare(position, length, str2);

where,

5. Searching - find()

We can use the **find() function of the std::string class to check whether a given character or a substring is present in the string or a part of string.

**Syntax of find()

str1.find(var);

**Parameters

**Return Value

**Example

std::string text = "C++ Programming";
int position = text.find("Programming"); // Find the position of a substring

The position variable will contain 4 which is the start of the first occurrence of the string "Programming" in string text.

6. Generate Substring - substr()

We can use the **substr() function to generate a part of the string as a new string object. It is a member function of the std::string class.

Syntax of substr() in C

str1.**substr(_start, length);

**Parameters

**Return Type

**Example

std::string text = "Hello, World!";
std::string sub = text.substr(7, 5); // Extract "World"

In the above example. the **sub string will contain the "World".

Modifying Strings

The following function allows us to modify the current string.

1. insert()

The insert() function not only allows us to add a string but also allows us to add it at the specified position. It is also a member function of the std::string class.

**Syntax

str1.**insert(index, str2);

**Parameters

**Return Type

**Example

std::string text = "I have a cat.";
text.insert(9, " black"); // Insert " black" at position 9

2. replace()

The replace() function replaces the part of the string with the given other string. Unlike insert, the characters in the part where the new string is to be inserted are removed.

**Syntax

str1.**replace(_index, size, str2);

**Parameters

**Return Type

**Example

std::string text = "I like dogs.";
text.replace(7, 4, "cats"); // Replace "dogs" with "cats"

3. erase()

The erase() function is a member function of std::string class that is used to remove a character or a part of the string.

**Syntax

str1****.erase(**start, end);

**Parameters

**Return Type

**Example

std::string text = "This is an example.";
text.erase(5, 3); // Erase "is "

Convert std::string to C String - c_str)_

The c_str() function is a member function that is used to convert the C++ style string i.e. std::string objects to C style string i.e. array of characters.

**Syntax

str1.c_str()

**Parameters

**Return Value

**Example

std::string str = "C++";
const char* cstr = str.c_str()

Example of String Functions in C++

The below code demonstrate the use of the above specified string functions:

C++ `

// C++ Code to demostrate various functions available in // String class

#include #include

using namespace std;

int main() { // Creating and initializing strings string greeting = "Hello, World!"; cout << greeting << endl; string name;

// Input from the user
cout << "Enter your name: ";
cin >> name;
cout << name << endl;

// String length
int length = greeting.length();
cout << length << endl;

// Accessing characters
char firstChar = greeting[0];
char secondChar = greeting.at(1);
cout << firstChar << " " << secondChar << endl;

// Appending and concatenating strings
string firstName = "Geek";
string lastName = "Geeks";
string fullName = firstName + " " + lastName;
cout << fullName << endl;
string base = "Hello";
cout << base << endl;
base.append(" World!");
cout << base << endl;

// String comparison
string str1 = "apple";
string str2 = "banana";
if (str1 == str2) {
    cout << "Strings are equal" << endl;
}
else {
    cout << "Strings are not equal" << endl;
}

int result = str1.compare(str2);
if (result == 0) {
    cout << "Strings are equal" << endl;
}
else if (result < 0) {
    cout << "str1 comes before str2" << endl;
}
else {
    cout << "str1 comes after str2" << endl;
}

// Substrings
string text = "Hello, World!";
cout << text << endl;
string sub = text.substr(7, 5);
cout << sub << endl;

// Searching
string searchIn = "C++ Programming";
size_t position = searchIn.find("Programming");
if (position != string::npos) {
    cout << "Found at position " << position << endl;
}
else {
    cout << "Not found" << endl;
}

// Modifying strings
string modify = "I like dogs.";
modify.replace(7, 4, "cats");
cout << modify << endl;
modify.insert(6, " black");
cout << modify << endl;
modify.erase(6, 6);
cout << modify << endl;

// Conversion
string str = "C++";
const char* cstr = str.c_str();
cout << cstr << endl;

return 0;

}

`

**Output

Hello, World!
Enter your name: Geeks
Geeks
13
H e
Geek Geeks
Hello
Hello World!
Strings are not equal
str1 comes before str2
Hello, World!
World
Found at position 4
I like cats.
I like black cats.
I like cats.
C++