Difference Between Array of Characters and std::string in C++
Last Updated :
01 Feb, 2024
In C++, we have character array and std::string class both of which are used to store the sequence of characters. The character arrays are a part of C-style programming on the other hand std::string is a part of the C++ standard library. In this article, we will discuss what are some major differences between the character array and std::string objects in C++.
Array of Characters
The array of characters or char array in C++ is used to store a sequence of characters in contiguous memory locations. It is terminated by a null character ('\0'
) that marks the end of the string.
Syntax
char charArrayName[size];
Example
C++
// C++ program to demonstrate the declaration and
// initialization of a char array in C++.
#include <iostream>
using namespace std;
int main()
{
// Declaring and initializing a char array
char greeting[] = "Hello, Geek!";
// Printing the content of the char array
cout << greeting << endl;
return 0;
}
std::string in C++
The std::string is a class in C++ which is a part of STL (standard template library) and used to store sequence of characters. It is vastly used as it handles memory allocation and resizing automatically.
Syntax
string stringName = " "
Example
C++
// C++ program to demonstrate the use of string
#include <iostream>
#include <string>
using namespace std;
int main()
{
// Declaring and initializing an string
string greeting = "Hello, Geek!";
// Printing the content of the string
cout << greeting << endl;
// Using string member functions
greeting += " How are you?";
cout << greeting << endl;
// Accessing the length of the string
cout << "Length of the string: " << greeting.length()
<< endl;
return 0;
}
OutputHello, Geek!
Hello, Geek! How are you?
Length of the string: 25
Difference between Char Array and String in c++
The below table illustrates the major differences between char array and string in C++.
|
Static - Fixed size upon declaration
| Dynamic - Resizes automatically
|
Null-terminated ('\0').
| No null-termination.
|
Requires manual handling of character sequences
| Rich set of member functions (e.g., concatenation, substring extraction)
|
May be less intuitive, more error-prone.
| More intuitive and convenient due to member functions.
|
Compatible with C-style string functions.
| Part of C++ Standard Library, may not be compatible in all environments.
|
Compatible with C and C++ both.
| Standardized in C++ environments, may not be available in some scenarios
|
Conclusion
In conclusion char arrays are mainly used because it offers simplicity and compatibility with C, making them suitable for certain scenarios. However, string provides a more robust features and is very easy to handle as it is dynamic and can easily handle memory allocation and resizing automatically.