Open In App

How to Resize an Array of Strings in C++?

In C++, the array of strings is useful for storing many strings in the same container. Sometimes, we need to change the size of this array. In this article, we will look at how to resize the array of strings in C++.

Resize String Array in C++

There is no way to directly resize the previously allocated memory. But we can create a new array, copy all the elements, and then delete the previous array using new and delete operators.



C++ Programs to Resize an Array in Strings




// C++ Program to Resize and Copy Elements in Dynamic Array
  
#include <iostream>
  
using namespace std;
  
int main()
{
    // Create an array of strings
    string* oldArray
        = new string[5]{ "Apple", "Banana", "Cherry",
                         "Date", "Fig" };
  
    // Display the elements in the old array
    cout << "Old Array Elements:" << endl;
    for (int i = 0; i < 5; ++i) {
        cout << oldArray[i] << endl;
    }
  
    // Create a new array with a larger size (e.g., double
    // the size)
    int newSize = 7;
    string* newArray = new string[newSize];
  
    // Copy elements from the old array to the new array
    for (int i = 0; i < 5; ++i) {
        newArray[i] = oldArray[i];
    }
    newArray[5] = "kiwi";
    newArray[6] = "dragonfruit";
  
    // Delete the old array
    delete[] oldArray;
  
    // Display the elements in the new array
    cout << "New Array Elements:" << endl;
    for (int i = 0; i < newSize; ++i) {
        cout << newArray[i] << endl;
    }
  
    // Delete the new array
    delete[] newArray;
  
    return 0;
}

Output
Old Array Elements:
Apple
Banana
Cherry
Date
Fig
New Array Elements:
Apple
Banana
Cherry
Date
Fig
kiwi
dragonfruit

Instead of this type of array we can use dynamic std::vector of strings which by default enables dynamic resizing.




Article Tags :