Como Converter Char Array em Strings em C++
-
Utilize
std::string
Construtor para converter Char Array em String -
Utilize a função
memmove
para converter Char Array em String -
Utilize
std::basic_string::assign
Método para converter Char Array em String
Este artigo introduz múltiplos métodos para converter um array de char
em um recipiente string
.
Utilize std::string
Construtor para converter Char Array em String
Neste exemplo, declaramos uma string em C constante, que é então utilizada como parâmetro de construção de uma string. Este método calcula automaticamente o comprimento da string. Após a chamada do construtor, podemos manipular a variável tmp_string
conforme a necessidade.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
const char* c_string = "This will be stored in std::string";
string tmp_string(c_string);
cout << tmp_string << endl;
return EXIT_SUCCESS;
}
Resultado:
This will be stored in std::string
Utilize a função memmove
para converter Char Array em String
Uma maneira mais simples é copiar os dados de char*
para um contêiner inicializado de string
. Desta forma, você deve conhecer com antecedência o comprimento do array char
para passá-lo na função memmove
. Observe que a inicialização do contêiner string
é crítica para um comportamento correto, e é por isso que estamos preenchendo a variável tmp_string
com 0x01 bytes.
#include <cstring>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
constexpr int C_STRING_LENGTH = 34;
int main() {
const char* c_string = "This will be stored in std::string";
string tmp_string(C_STRING_LENGTH, 1);
memmove(&tmp_string[0], c_string, C_STRING_LENGTH);
cout << tmp_string << endl;
return EXIT_SUCCESS;
}
Note que, você também pode copiar os dados c_string
para tmp_string
utilizando várias funções como: memcpy
, memccpy
, mempcpy
, strcpy
ou strncpy
, mas não se esqueça de ler cuidadosamente as páginas do manual e considerar seus casos/bugs de borda.
Utilize std::basic_string::assign
Método para converter Char Array em String
Como no exemplo anterior, este método requer o comprimento do array char
. Definimos um ponteiro char
chamado tmp_ptr
e atribuímos a ele o endereço do primeiro caractere em tmp_string
.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
constexpr int C_STRING_LENGTH = 34;
int main() {
const char* c_string = "This will be stored in std::string";
string tmp_string;
tmp_string.assign(c_string, C_STRING_LENGTH);
cout << tmp_string << endl;
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArtigo relacionado - C++ Char
- Contar ocorrências de um caractere em String C++
- Obtenha o valor ASCII de Char em C++
- Como converter ASCII para Char em C++
- Como converter Char Array para Int em C++
- Como Converter Int para Char Array em C++