Ver Mensaje Individual
  #48 (permalink)  
Antiguo 24/09/2010, 08:51
Avatar de r0d
r0d
 
Fecha de Ingreso: noviembre-2007
Mensajes: 86
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: FAQs del lenguaje C y sus variantes

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
__________________
Alicia: Sólo quiero saber que camino debo tomar.
Gato risón: Pues... depende mucho de donde quieras ir.

Mi página web

Última edición por r0d; 24/09/2010 a las 20:26