Cómo convertir un array de caracteres en una cadena en C++
-
Usa el constructor
std::string
para convertir un array de caracteres en una cadena -
Usar la función
memmove
para convertir el array de caracteres en cadena -
Usa el método
std::basic_string::assign
para convertir el array de caracteres en cadena
Este artículo introduce múltiples métodos para convertir un array de char
en un contenedor de string
.
Usa el constructor std::string
para convertir un array de caracteres en una cadena
En este ejemplo, declaramos una constante C-cadena, que luego se utiliza como un parámetro de construcción de string
. Este método calcula automáticamente la longitud de la cadena. Después de la llamada al constructor, podemos manipular la variable tmp_string
según sea necesario.
#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
Usar la función memmove
para convertir el array de caracteres en cadena
Una forma más directa es copiar los datos de char*
a un contenedor de string
inicializado. De esta manera, debes saber la longitud del array de char
con antelación para pasarla a la función de memmove
. Ten en cuenta que la inicialización del contenedor string
es crítica para un comportamiento correcto, y por eso estamos llenando la variable tmp_string
con 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;
}
Ten en cuenta que, también puedes copiar los datos de c_string
a tmp_string
usando varias funciones como: memcpy
, memccpy
, mempcpy
, strcpy
o strncpy
, pero ten en cuenta que debes leer cuidadosamente las páginas del manual y considerar sus casos de borde/bugs.
Usa el método std::basic_string::assign
para convertir el array de caracteres en cadena
Como en el ejemplo anterior, este método requiere la longitud del array char
. Definimos un puntero char
llamado tmp_ptr
y le asignamos la dirección del primer carácter en 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 FacebookArtículo relacionado - C++ Char
- Contar apariciones de un carácter en una cadena C++
- Obtenga el valor ASCII de Char en C++
- Cómo convertir el ASCII a caractere en C++
- Cómo convertir Char Array a Int en C++
- Cómo convertir la Int a Char Array en C++
Artículo relacionado - C++ String
- Encuentre el primer carácter repetido en una cadena en C++
- Encuentre la subcadena común más larga en C++
- Poner en mayúscula la primera letra de una cadena en C++
- Comparación de cadenas y caracteres en C++
- Eliminar el último carácter de una cadena en C++
- Obtener el último carácter de una cadena en C++