Como Converter uma String em Char Array em C++

Publicado por Mauricio Ferrari em 22/02/2021

[ Hits: 15.068 ]

Blog: https://www.youtube.com/@LinuxDicasPro

 


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

Skype Atualizado no Ubuntu e Linux Mint

Comando CLS do Windows no Linux

Fazendo Upload no Git pelo Terminal

Três Formas Fáceis de usar Super Usuário pelo Terminal no Linux

Conky Manager no Linux Mint 20

Leitura recomendada

Limpando a "sujeirinha" no buffer do teclado

Métodos para a Limpeza do Terminal do Linux em C

stty: alternativa para echo e noecho

Incluindo paths para os seu próprios headers

Getchar(); sendo ignorado? Não mais!

  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts