How to convert string to char array in C++

In this tutorial, we will learn how to convert a string into a character array in C++. There are multiple ways to convert a string to a char array in C++. Let’s discuss some of them here one by one.

Using for loop

We can easily convert a given C++ string into a character array by using for loop as shown in the below code.

#include <iostream>
#include <cstring>

using namespace std;

void print_char_array(char array[], int size)
{
    for(int i=0; i<size; i++)
    cout << array[i];
}

int main()
{
    string s = "This is a string";
    int size = s.length();
    
    char array[size];
    
    for(int i=0; i<size; i++)
    {
        array[i] = s[i];
    }
    
    print_char_array(array, size);
    
    return 0;
}

Output:

This is a string

Using strcpy() and c_str() functions

We can also use strcpy() and c_str() functions to convert a string into a character array in C++. The c_str() method returns a pointer to a null-terminated sequence of characters for a string object. We can copy these characters in our char array using strcpy() function. See the below example.

#include <iostream>
#include <cstring>

using namespace std;

void print_char_array(char array[], int size)
{
    for(int i=0; i<size; i++)
    cout << array[i];
}

int main()
{
    string s = "This is a string";
    int size = s.length();
    
    char array[size + 1];
    
    strcpy(array, s.c_str());
    
    print_char_array(array, size);
    
    return 0;
}

Output:

This is a string

Using std::string::copy()

This method can also be used to convert a string to a char array. It takes two parameters – First, the character array to which we want to convert and the size of the string. The below program will help you understand it.

#include <iostream>
#include <cstring>

using namespace std;

void print_char_array(char array[], int size)
{
    for(int i=0; i<size; i++)
    cout << array[i];
}

int main()
{
    string s = "This is a string";
    int size = s.length();
    
    char array[size + 1];
    
    s.copy(array, size + 1);
    
    print_char_array(array, size);
    
    return 0;
}

Output:

This is a string

By assigning the address of the string to a pointer to char

Another method to convert a string to char array is by assigning the address of the first character of the given string to a char pointer. Have a look at the following code.

#include <iostream>
#include <cstring>

using namespace std;

void print_char_array(char array[], int size)
{
    for(int i=0; i<size; i++)
    cout << array[i];
}

int main()
{
    string s = "This is a string";
    int size = s.length();
    
    char *array;
    
    array = &s[0];
    
    print_char_array(array, size);
    return 0;
}

Output:

This is a string

Thank you.

You may also read: Find if a given sequence of characters are present in a parent string in C++

Leave a Reply

Your email address will not be published. Required fields are marked *