Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: nolasco281 en 9 Marzo 2014, 19:57 PM

Título: Convertir un string a char
Publicado por: nolasco281 en 9 Marzo 2014, 19:57 PM
Hola como estan, quisiera saber si alquien sabe como convertir una string a char
ya que lo nesesito para la funcion.

void outtextxy (int x, int y, char *textstring);

y ya probe con:

//char *nombre = strdup(nombrePer.c_str());
//sprintf(cadena, "%c", nombrePer);
//strcpy(cadena,nombrePer.c_str());

Y sique sin funcionarme.

gracias de antemano y saludos a todos.

Título: Re: Convertir un string a char
Publicado por: amchacon en 9 Marzo 2014, 20:00 PM
No me ha quedado claro, si te refieres a esto:
Código (cpp) [Seleccionar]
string nombre = "Hola";
funcion(Hola.c_str());


O si te refieres a:

Código (cpp) [Seleccionar]
char* nombre = "Cosa";

funcion(string(nombre));
Título: Re: Convertir un string a char
Publicado por: nolasco281 en 9 Marzo 2014, 20:12 PM
Hola gracias por contestar

si no me equivoco

la cadena hola pasa a la funcion y convierte hola en una cadena de caracteres no?

Código (cpp) [Seleccionar]
   string nombre = "Hola";
   funcion(Hola.c_str());



// Y en este caso la variable nombre va a recibir la cadena de caracteres no?

Código (cpp) [Seleccionar]
char* nombre = "Cosa";
funcion(string(nombre));


gracias por contestar de nuevo.
Título: Re: Convertir un string a char
Publicado por: nolasco281 en 9 Marzo 2014, 20:41 PM
Hola ya se por que no me hace la convercion

tengo cin.ignore(); despues que me lee la cadena pero no me muestra la cadena,
lo hice con cin >> cadena y despues

Código (cpp) [Seleccionar]
strcpy(cadena2,nombrePer.c_str());

y hace la convercion pero no acepta espacios.
Título: Re: Convertir un string a char
Publicado por: rir3760 en 11 Marzo 2014, 03:07 AM
Tienes que explicar de una forma mas clara y detallada tu problema.

Cita de: nolasco281 en  9 Marzo 2014, 19:57 PMquisiera saber si alquien sabe como convertir una string a char ya que lo nesesito para la funcion.

void outtextxy (int x, int y, char *textstring);
Si apenas empiezas tu aprendizaje del lenguaje C++ te recomiendo evitar extensiones como (en este caso) la biblioteca conio de Borland, enfocate primero en aprender el lenguaje.

En C++ tienes la clase string para un manejo mas fácil (en relación a C) de cadenas, si utilizas un objeto de la clase string y necesitas en base a el obtener una cadena "a la C" debes utilizar la función miembro "c_str", esa es la idea en el primer ejemplo de amchacon:
Código (cpp) [Seleccionar]
string nombre = "Hola";
funcion(Hola.c_str());


El proceso opuesto (en base a una cadena "a la C" crear un objeto de la clase string) en su segundo ejemplo:
Código (cpp) [Seleccionar]
char *nombre = "Cosa";
funcion(string(nombre));


Cita de: nolasco281 en  9 Marzo 2014, 20:41 PMtengo cin.ignore(); despues que me lee la cadena pero no me muestra la cadena
Publica el código fuente completo.

Cita de: nolasco281 en  9 Marzo 2014, 20:41 PMlo hice con cin >> cadena y despues
Código (cpp) [Seleccionar]
strcpy(cadena2,nombrePer.c_str());
y hace la convercion pero no acepta espacios.
Al utilizar "cin >> cadena" lo que obtienes es un palabra, ese es el comportamiento normal del operador.

Un saludo