Como Converter Char Array em Strings em C++
-
Utilize
std::stringConstrutor para converter Char Array em String -
Utilize a função
memmovepara converter Char Array em String -
Utilize
std::basic_string::assignMé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++
