Convert String to Char Array in C++
Last Updated :
11 Jan, 2025
In C++, we usually represent text data using the std::string object. But in some cases, we may need to convert a std::string to a character array, the traditional C-style strings. In this article, we will learn how to convert the string to char array in C++.
Examples
Input: str = "geeksforgeeks"
Output: char arr[] = { 'g', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'g', 'e', 'e', 'k', 's', '\0' };
Explanation: str is converted to character array.
Input: str = "abc"
Output: char arr[] = {'a', 'b', 'c', '\0'}
Explanation: str is converted to character array.
Following are the different ways to convert the string to char array in C++:
Using std::string::c_str() Method
To change std::string to char array, we can first use string::c_str() function to get the underlying character array that contains the string stored in std::string object. Then we can create a copy of this char array using strcpy() function. We can also use & (Address-of) operator to get the underlying character array by fetching the address of the first character.
Code Implementation
C++
// C++ program to convert string to char array
// using string::c_str()
#include <bits/stdc++.h>
using namespace std;
int main() {
// Assigning value to string s
string str = "geeksforgeeks";
int n = str.length();
// declaring character array (+1 for null
// character)
char arr[n + 1];
// copying the contents of the string to
// char array
strcpy(arr, str.c_str());
cout << "{ ";
for (int i = 0; i < n; i++)
cout << arr[i] << ", ";
cout << "}";
return 0;
}
Output{ g, e, e, k, s, f, o, r, g, e, e, k, s, }
Time complexity: O(n), where n is the number of characters in a string.
Auxiliary Space: O(n)
Using std::copy() Method
In the above method, we have first fetched the underlying character array of std::string object. But we can also directly convert std::string to char array by using std::copy() function. This function works for both iterators and pointers so we can copy the std::string objects (uses iterator) directly to character array (uses pointers).
Syntax
copy(first, last, pos);
Parameters
- first: Iterator to the beginning of string object.
- last: Iterator to the position just after the end of the string object.
- pos: Pointer to the start of the character array
Code Implementation
C++
// C++ Program for converting the string to
// char array using std::copy()
#include <bits/stdc++.h>
using namespace std;
int main() {
string str = "geeksforgeeks";
int n = str.length();
char arr[n + 1];
// Specify the ranges
auto first = str.begin();
auto last = str.end();
// Convert the string to char array
copy(first, last, arr);
// Null terminate the char array
arr[n] = '\0';
cout << "{ ";
for (int i = 0; i < n; i++)
cout << arr[i] << ", ";
cout << "}";
return 0;
}
Output{ g, e, e, k, s, f, o, r, g, e, e, k, s, }
Time Complexity: O(n), where n is the length of the string.
Auxiliary Space: O(n)
Using Loops
To manually covert the string to char array, we can use any C++ loop to iterate through each element of the std::string and copy the character to the char array one by one.
Code Implementation
C++
// C++ program to manually convert string to
// char array using a loop
#include <bits/stdc++.h>
using namespace std;
int main() {
string str = "geeksforgeeks";
int n = str.length();
// Create a new array of chars to copy the
// string
char arr[n + 1];
// Null terminate char array
arr[n] = '\0';
// Copy each character of str to arr
for (int i = 0; i < n; i++)
arr[i] = str[i];
cout << "{ ";
for (int i = 0; i < n; i++)
cout << arr[i] << ", ";
cout << "}";
return 0;
}
Output{ g, e, e, k, s, f, o, r, g, e, e, k, s, }
Time Complexity: O(n), where n is the length of the string.
Auxiliary Space: O(n)
Similar Reads
C++ Programming Language
C++ is a computer programming language developed by Bjarne Stroustrup as an extension of the C language. It is known for is fast speed, low level memory management and is often taught as first programming language. It provides:Hands-on application of different programming concepts.Similar syntax to
5 min read
Object Oriented Programming in C++
Object Oriented Programming - As the name suggests uses objects in programming. Object-oriented programming aims to implement real-world entities like inheritance, hiding, polymorphism, etc. in programming. The main aim of OOP is to bind together the data and the functions that operate on them so th
5 min read
Inheritance in C++
The capability of a class to derive properties and characteristics from another class is called Inheritance. Inheritance is one of the most important features of Object-Oriented Programming in C++. In this article, we will learn about inheritance in C++, its modes and types along with the informatio
10 min read
Vector in C++ STL
C++ vector is a dynamic array that stores collection of elements same type in contiguous memory. It has the ability to resize itself automatically when an element is inserted or deleted.Create a VectorBefore creating a vector, we must know that a vector is defined as the std::vector class template i
7 min read
30 OOPs Interview Questions and Answers [2025 Updated]
Object-oriented programming, or OOPs, is a programming paradigm that implements the concept of objects in the program. It aims to provide an easier solution to real-world problems by implementing real-world entities such as inheritance, abstraction, polymorphism, etc. in programming. OOPs concept is
15 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
Operator Overloading in C++
in C++, Operator overloading is a compile-time polymorphism. It is an idea of giving special meaning to an existing operator in C++ without changing its original meaning.In this article, we will further discuss about operator overloading in C++ with examples and see which operators we can or cannot
8 min read
C++ Classes and Objects
In C++, classes and objects are the basic building block that leads to Object-Oriented programming in C++. We will learn about C++ classes, objects, look at how they work and how to implement them in our C++ program.C++ ClassesA class is a user-defined data type, which holds its own data members and
9 min read
C++ Polymorphism
The word polymorphism means having many forms. A real-life example of polymorphism is a person who at the same time can have different characteristics. A man at the same time is a father, a husband, and an employee. So, the same person exhibits different behaviour in different situations. This is ca
5 min read
Virtual Function in C++
A virtual function (also known as virtual methods) is a member function that is declared within a base class and is re-defined (overridden) by a derived class. When you refer to a derived class object using a pointer or a reference to the base class, you can call a virtual function for that object a
6 min read