Problema: ¿Como convertir un char* en un std::string?
Lenguaje: C++
Respuesta: Utilizando el constructor or el operador de asignación
Código:
std::string str2( "hola" ); // constructor
std::string str1 = "hola"; // operador de asignación
__________________________________________________ __
Problema: ¿Como convertir un std::string en un char*?
Lenguaje: C++
Respuesta: Utilizando la función miembro: c_str():
Código:
string file_name = "mi_fichero.txt";
ifstream file( file_name.c_str() );
// el constructor de la clase ifstream no acepta un std::string
La función c_str() devuelve un const char*, entonces no se puede modificar directamente. Si quiere obtener un char* que se pueda modificar, hay que copiarlo en una variable suya:
Código:
#include <string>
#include <cstring>
#include <iostream>
string str = "una cadena de caracteres";
// crear un buffer para recibir la cadena
size_t size = str.size() + 1;
char * buffer = new char[ size ];
// copiar la cadena
strncpy( buffer, str.c_str(), size );
__________________________________________________ __
Problema: ¿Como convertir un número en un std::string?
Lenguaje: C++
Respuesta: Utilizando el objeto ostringstream:
Código:
#include <sstream>
std::ostringstream oss; // creamos un ostringstream
oss << 10; // los llenamos con un número; aquí es 10
// pero podria ser cualquier número, incluso un flotante
std::string result = oss.str(); // hacemos la conversión
__________________________________________________ __
Problema: ¿Como convertir un std::string en un número?
Lenguaje: C++
Respuesta: Utilizando el objeto istringstream:
Código:
#include <sstream>
std::istringstream iss( "10" );
int numero;
iss >> numero; // ahora numero = 10