Cómo convertir un array de caracteres en una cadena en C++
-
Usa el constructor
std::stringpara convertir un array de caracteres en una cadena -
Usar la función
memmovepara convertir el array de caracteres en cadena -
Usa el método
std::basic_string::assignpara 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++
