In C++, strings are sequences of characters that are used to store words and text. They are also used to store data, such as numbers and other types of information in the form of text. Strings are provided by <string> header file in the form of std::string class.
Creating a String
Before using strings, first we are creating an instance of std::string class as shown:
C++
where str_name is the name of the string.
Initializing a String
Initializing means assigning some initial value to the string. This can be done by using assignment operator and the text enclosed inside "" double quotes.
C++
string str = "Some Text here";
The text inside "" is called string literal and it is the value that is assigned to the string variables. It can be any text that is the sequence of characters from the ASCII charset.
Printing a String
A string can be referred using its name anywhere in the scope once it is declared. For example, the below example prints string using cout:
C++
#include <iostream>
using namespace std;
int main() {
// Creating a string
string greeting = "Welcome to GfG!";
// Accessing string
cout << greeting;
return 0;
}
The individual characters of the strings can also be accessed using their position (or index) like arrays with [] square brackets. The index in C++ starts from 0 and goes till size - 1, so be careful not go outside this limit.
C++
#include <iostream>
using namespace std;
int main() {
string str = "Sonu";
// Accessing 3rd character
cout << str[2] << endl;
// Accessing first character
cout << str[0];
return 0;
}
Updating String
The string variable can be updated with new string literal in a similar way it is initialized.
C++
#include <iostream>
using namespace std;
int main() {
string str = "Tara";
cout << str << endl;
// Updating string
str = "Singh";
cout << str;
return 0;
}
A single character can also be changed by first accessing the character and then using assignment operator to assign value.
C++
#include <iostream>
using namespace std;
int main() {
string str = "Tara";
// Updating second character
str[1] = 'o';
cout << str;
return 0;
}
Other String Operations
The following operations aims to improve your understanding of the strings in C++ and introduce you to some of the most commonly used operations:
Pass Strings to Functions
The string can be passed to a function in the same was as any other type of variable.
C++
#include <iostream>
using namespace std;
// Taking string as argument
void print(string s) {
cout << s;
return;
}
int main() {
string s = "GeeksforGeeks";
// Passing string
print(s);
return 0;
}
C Style Strings
C++ is a superset of C language, so it also inherits the way in which we used to create strings in C. In C, strings were nothing, but an array of characters terminated by a NULL character '\0'. They were created as:
C++
Due to being array, there were limitations on C strings:
- Fixed Size: Once declared, the size of the C string cannot be changed.
- Lack of Easy String Operations: No high-level operations like concatenation or substring extraction. Moreover, updating was also complex.
C++ strings resolve these issues by providing a lot of operations that are easy to perform. Internally, these strings are still implemented as dynamic array of characters (or more precisely vectors) Thats why we can access a single character by its index. But the std::string class act as a wrapper and provides lot of built-in functionality for easier and more efficient handling of strings.
C++ String vs C Strings
The main difference between a string and a character array is that strings are immutable, while character arrays are not.
String | Character Array |
---|
Strings define objects that can be represented as string streams. | The null character terminates a character array of characters. |
No Array decay occurs in strings as strings are represented as objects. | The threat of array decay is present in the case of the character array. |
A string class provides numerous functions for manipulating strings. | Character arrays do not offer inbuilt functions to manipulate strings. |
Memory is allocated dynamically. | The size of the character array has to be allocated statically. |
Know more about the difference between strings and character arrays in C++
C++ String Functions
C++ provides some inbuilt functions which are used for string manipulation, such as the strcpy() and strcat() functions for copying and concatenating strings. Some of them are:
Function | Description |
---|
length() | This function returns the length of the string. |
---|
swap() | This function is used to swap the values of 2 strings. |
---|
size() | Used to find the size of string |
---|
resize() | This function is used to resize the length of the string up to the given number of characters. |
---|
find() | Used to find the string which is passed in parameters |
---|
push_back() | This function is used to push the passed character at the end of the string |
---|
pop_back() | This function is used to pop the last character from the string |
---|
clear() | This function is used to remove all the elements of the string. |
---|
strncmp() | This function compares at most the first num bytes of both passed strings. |
---|
strncpy() | This function is similar to strcpy() function, except that at most n bytes of src are copied |
---|
strrchr() | This function locates the last occurrence of a character in the string. |
---|
strcat() | This function appends a copy of the source string to the end of the destination string |
---|
find() | This function is used to search for a certain substring inside a string and returns the position of the first character of the substring. |
---|
replace() | This function is used to replace each element in the range [first, last) that is equal to old value with new value. |
---|
substr() | This function is used to create a substring from a given string. |
---|
compare() | This function is used to compare two strings and returns the result in the form of an integer. |
---|
erase() | This function is used to remove a certain part of a string. |
---|
rfind() | This function is used to find the string's last occurrence. |
---|
These functions are discussed in this article in more detail - String Function in C++
Similar Reads
C++ Tutorial | Learn C++ Programming C++ is a popular programming language that was developed as an extension of the C programming language to include OOPs programming paradigm. Since then, it has become foundation of many modern technologies like game engines, web browsers, operating systems, financial systems, etc.Features of C++Why
5 min read
Introduction to c++
Difference between C and C++C++ is often viewed as a superset of C. C++ is also known as a "C with class" This was very nearly true when C++ was originally created, but the two languages have evolved over time with C picking up a number of features that either weren't found in the contemporary version of C++ or still haven't m
3 min read
Setting up C++ Development EnvironmentC++ is a general-purpose programming language and is widely used nowadays for competitive programming. It has imperative, object-oriented, and generic programming features. C++ runs on lots of platforms like Windows, Linux, Unix, Mac, etc. Before we start programming with C++. We will need an enviro
8 min read
Header Files in C++C++ offers its users a variety of functions, one of which is included in header files. In C++, all the header files may or may not end with the ".h" extension unlike in C, Where all the header files must necessarily end with the ".h" extension. Header files in C++ are basically used to declare an in
6 min read
Namespace in C++Name conflicts in C++ happen when different parts of a program use the same name for variables, functions, or classes, causing confusion for the compiler. To avoid this, C++ introduce namespace.Namespace is a feature that provides a way to group related identifiers such as variables, functions, and
6 min read
Writing First C++ Program - Hello World ExampleThe "Hello World" program is the first step towards learning any programming language and is also one of the most straightforward programs you will learn. It is the basic program that demonstrates the working of the coding process. All you have to do is display the message "Hello World" on the outpu
4 min read
Basics
C++ Data TypesData types specify the type of data that a variable can store. Whenever a variable is defined in C++, the compiler allocates some memory for that variable based on the data type with which it is declared as every data type requires a different amount of memory.C++ supports a wide variety of data typ
7 min read
C++ VariablesIn C++, variable is a name given to a memory location. It is the basic unit of storage in a program. The value stored in a variable can be accessed or changed during program execution.Creating a VariableCreating a variable and giving it a name is called variable definition (sometimes called variable
4 min read
Operators in C++C++ operators are the symbols that operate on values to perform specific mathematical or logical computations on given values. They are the foundation of any programming language.Example:C++#include <iostream> using namespace std; int main() { int a = 10 + 20; cout << a; return 0; }Outpu
9 min read
Basic Input / Output in C++In C++, input and output are performed in the form of a sequence of bytes or more commonly known as streams.Input Stream: If the direction of flow of bytes is from the device (for example, Keyboard) to the main memory then this process is called input.Output Stream: If the direction of flow of bytes
5 min read
Control flow statements in ProgrammingControl flow refers to the order in which statements within a program execute. While programs typically follow a sequential flow from top to bottom, there are scenarios where we need more flexibility. This article provides a clear understanding about everything you need to know about Control Flow St
15+ min read
C++ LoopsIn C++ programming, sometimes there is a need to perform some operation more than once or (say) n number of times. For example, suppose we want to print "Hello World" 5 times. Manually, we have to write cout for the C++ statement 5 times as shown.C++#include <iostream> using namespace std; int
7 min read
Functions in C++A function is a building block of C++ programs that contains a set of statements which are executed when the functions is called. It can take some input data, performs the given task, and return some result. A function can be called from anywhere in the program and any number of times increasing the
9 min read
C++ ArraysIn C++, an array is a derived data type that is used to store multiple values of similar data types in a contiguous memory location.Arrays in C++Create an ArrayIn C++, we can create/declare an array by simply specifying the data type first and then the name of the array with its size inside [] squar
10 min read
Strings in C++In C++, strings are sequences of characters that are used to store words and text. They are also used to store data, such as numbers and other types of information in the form of text. Strings are provided by <string> header file in the form of std::string class.Creating a StringBefore using s
5 min read
Core Concepts
Pointers and References in C++In C++ pointers and references both are mechanisms used to deal with memory, memory address, and data in a program. Pointers are used to store the memory address of another variable whereas references are used to create an alias for an already existing variable. Pointers in C++ Pointers in C++ are a
5 min read
new and delete Operators in C++ For Dynamic MemoryIn C++, when a variable is declared, the compiler automatically reserves memory for it based on its data type. This memory is allocated in the program's stack memory at compilation of the program. Once allocated, it cannot be deleted or changed in size. However, C++ offers manual low-level memory ma
6 min read
Templates in C++C++ template is a powerful tool that allows you to write a generic code that can work with any data type. The idea is to simply pass the data type as a parameter so that we don't need to write the same code for different data types.For example, same sorting algorithm can work for different type, so
9 min read
Structures, Unions and Enumerations in C++Structures, unions and enumerations (enums) are 3 user defined data types in C++. User defined data types allow us to create a data type specifically tailored for a particular purpose. It is generally created from the built-in or derived data types. Let's take a look at each of them one by one.Struc
3 min read
Exception Handling in C++In C++, exceptions are unexpected problems or errors that occur while a program is running. For example, in a program that divides two numbers, dividing a number by 0 is an exception as it may lead to undefined errors.The process of dealing with exceptions is known as exception handling. It allows p
11 min read
File Handling through C++ ClassesIn C++, programs run in the computerâs RAM (Random Access Memory), in which the data used by a program only exists while the program is running. Once the program terminates, all the data is automatically deleted. File handling allows us to manipulate files in the secondary memory of the computer (li
8 min read
Multithreading in C++Multithreading is a technique where a program is divided into smaller units of execution called threads. Each thread runs independently but shares resources like memory, allowing tasks to be performed simultaneously. This helps improve performance by utilizing multiple CPU cores efficiently. Multith
5 min read
C++ OOPS
Standard Template Library (STL)
Practice Problem