#include <iostream>
#include <string>
using namespace std;
int main() {
char arr[] = {'H', 'e', 'l', 'l', 'o', '\0'};
// Method 1: Direct assignment
string str1 = arr;
// Method 2: Using string constructor
string str2(arr);
// Method 3: Using assign()
string str3;
str3.assign(arr);
cout << "Array: " << arr << endl;
cout << "String (method 1): " << str1 << endl;
cout << "String (method 2): " << str2 << endl;
cout << "String (method 3): " << str3 << endl;
return 0;
}Output
Array: Hello String (method 1): Hello String (method 2): Hello String (method 3): Hello
Convert Array to String in C++
This program teaches you how to convert a character array (C-style string) into a C++ string. This conversion is very common and usually straightforward because C++ strings can easily accept character arrays. Understanding different conversion methods helps you write clean, efficient code and handle various scenarios when working with legacy C code or character arrays.
What This Program Does
The program converts a character array (like {'H', 'e', 'l', 'l', 'o', '\0'}) into a C++ string (like "Hello"). C++ strings are more convenient than character arrays because they automatically manage memory, provide length information, and offer many useful methods. This conversion allows you to use modern C++ string features with C-style data.
Example:
- Input array: char arr[] = {'H', 'e', 'l', 'l', 'o', '\0'}
- Output string: "Hello"
Methods for Conversion
Method 1: Direct Assignment
cppstring str1 = arr;
- Simplest and most common method
- C++ strings can be directly assigned from character arrays
- The string constructor automatically handles the conversion
Method 2: Using String Constructor
cppstring str2(arr);
- Explicitly uses the string constructor
- Same result as direct assignment but more explicit
- Makes it clear that construction is happening
Method 3: Using assign()
cppstring str3; str3.assign(arr);
- Uses the assign() member function
- Useful when you want to replace existing string content
- Can be used on an existing string object
Important Considerations
Null Terminator:
- Character arrays must end with '\0' for proper conversion
- String constructor reads until null terminator is found
- Without null terminator, it may read beyond array bounds (undefined behavior)
Memory Management:
- String creates its own copy of the characters
- Original array is not modified
- String manages its own memory automatically
Summary
- Converting character arrays to strings is straightforward in C++.
- Direct assignment is the simplest and most common method.
- String constructor provides explicit construction option.
- assign() is useful for replacing existing string content.
- Always ensure character arrays are null-terminated for safe conversion.
- String creates its own copy - original array is not modified.
This program is essential for beginners learning how to work with both C-style character arrays and modern C++ strings, understanding the relationship between them, and choosing the right conversion method for different scenarios in C++ programs.