Como Converter uma String em Char Array em C++

Publicado por Mauricio Ferrari em 22/02/2021

[ Hits: 195 ]

Blog: https://github.com/MauricioFerrari-NovaTrento

 


Como Converter uma String em Char Array em C++



Esses dias, tive a necessidade de converter uma string em char array. Então, resolvi buscar pela internet a melhor forma de fazer isso. Encontrei três opções mas, tive dificuldades em buscar essas informações e por isso resolvi traduzir a dica que veio desse link: Convert string to char array in C++

Esse link apresentou as três formas a seguir.

MÉTODO 1

Uma das formas de fazer a conversão é usando as funções c_str() e strcpy() da biblioteca cstring. A função c_str() é usada para retornar um ponteiro para um array que contém uma seqüência de caracteres terminada em nulo representando o valor atual da string. Depois, é usado a função strcpy() para encontrar os elementos para copiar em uma char array. Depois de copiá-lo, podemos usá-lo como um array simples.

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    string s = "VivaoLinux";  // Declaração da String
    int n = s.length();
    char char_array[n + 1]; // Declarar Char Array
    strcpy(char_array, s.c_str()); // Copiar o Conteúdo da String para o Char Array
    for (int i = 0; i < n; i++){
        cout << char_array[i];
    }
    return 0;
}

MÉTODO 2

O segundo método segue o mesmo esquema:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s("geeksforgeeks"); // Atribuindo Valor a String
    char p[s.length()]; // Declarando a Char Array
    int i;
    for (i = 0; i < sizeof(p); i++) {
        p[i] = s[i];
        cout << p[i];
    }
    return 0;
}

MÉTODO 3 - C++ 14

Esse foi o que eu usei. É mais atual, simples e mais eficiente. Podemos atribuir diretamente o endereço do primeiro caractere da string a um ponteiro para char:

#include <cstring>
#include <iostream>
#include <string>

using namespace std;

int main() {
    char* char_arr;
    string str_obj("GeeksForGeeks");
    char_arr = &str_obj[0]; // É só isso?
    cout << char_arr;
    return 0;
}

Com esses métodos em mãos, é só usar o que for mais conveniente para cada caso.

Outras dicas deste autor

Mudando o Destino para Geração de Pacotes dos SlackBuild

Flareget no Debian, Ubuntu, Linux Mint e derivados

Evitando Propagandas e Sites Golpistas no Google Chrome

Instalando o BootUp Manager (BUM) no Ubuntu 20.04 e Linux Mint 20

Tapeando o Bug no Menu do MATE 1.24 no Linux Mint 20

Leitura recomendada

Linguagem C++ (Curso gratuito)

Desenvolvimento com C/C++ e GTK

Programando no Ubuntu - aplicações gráficas em C++ com Eclipse e Glade

Instalando a biblioteca libxml2

getch() e getche() não funcionam no ANSI

  

Comentários
[1] Comentário enviado por danniel-lara em 22/02/2021 - 19:09h


Muito bom

[2] Comentário enviado por mauricio123 em 22/02/2021 - 21:04h


[1] Comentário enviado por danniel-lara em 22/02/2021 - 19:09h


Muito bom


valeu



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts