Pular para o conteúdo

Como Converter uma String em Char Array em C++

Dica publicada em C/C++ / Introdução
Mauricio Ferrari (LinuxProativo) maurixnovatrento
Hits: 17.241 Categoria: C/C++ Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Digitar comandos no terminal em várias linhas

Spotify Atualizado no Ubuntu e Linux Mint

Desligar e Reiniciar o Linux pelo Terminal - Todas as Formas Possíveis

BleachBit 4.0.0 no Slackware Current

Contador de Palavras no Terminal

Mais um curso de linguagem C

Site com questões de programação

Qt 4.5 (Desenvolvimento multi-plataforma em C++ com Qt)

Pequeno programinha em C para ver o ASCII de uma tecla

Classes para vários tipos (templates)

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

Muito bom
#2 Comentário enviado por maurixnovatrento 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

Entre na sua conta para comentar.