Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Pasar cadena String a una variable Char en C++

Estas en el tema de Pasar cadena String a una variable Char en C++ en el foro de C/C++ en Foros del Web. Hola amigos, Tengo esto: Código: string PalabraAdivinar = golf; //Variable usada solamente para convertir la Palabra a Adivinar de String a Char y poder usar ...
  #1 (permalink)  
Antiguo 06/11/2015, 06:34
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Pregunta Pasar cadena String a una variable Char en C++

Hola amigos,

Tengo esto:
Código:
string PalabraAdivinar = golf;

//Variable usada solamente para convertir la Palabra a Adivinar de String a Char y poder usar la función strcmp()
    char PalabraAdivinarChar[PalabraAdivinar.size()] = PalabraAdivinar;

//Uso de la función strcmp()
y = strcmp(PalabraAdivinarChar, Respuesta);
Debo pasar mi cadena String a Char para poder usar esta función y me compare si la Palabra a Adivinar ya es igual a la Respuesta, o sea, lo que ingresa el usuario. Para hacer esta comparacion hago uso de la funcion strcmp(), el cual solo trabaja con variables tipo Char.

La duda mia es, la variable Char esta bien declarada?, porque me da error en CodeBlocks.

Notar que hice esto:
PalabraAdivinarChar[PalabraAdivinar.size()]

no se me ocurrió otra forma de asignarle el tamaño que necesito jeje.

espero me ayuden chicos..
  #2 (permalink)  
Antiguo 06/11/2015, 06:57
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Pasar cadena String a una variable Char en C++

insisto, tienes que estudiarte un poco la STL.

la clase string tiene un método llamado c_str que te devuelve un puntero a la cadena char* que gestiona internamente.

Sobra decir que no es recomendable acceder a ese puntero directamente con la intención de rellenar el string.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #3 (permalink)  
Antiguo 06/11/2015, 07:03
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Pasar cadena String a una variable Char en C++

Cita:
Iniciado por eferion Ver Mensaje
insisto, tienes que estudiarte un poco la STL.

la clase string tiene un método llamado c_str que te devuelve un puntero a la cadena char* que gestiona internamente.

Sobra decir que no es recomendable acceder a ese puntero directamente con la intención de rellenar el string.
Entiendo, y como puedo pasar el string a char entonces, no se me ocurre nada
  #4 (permalink)  
Antiguo 06/11/2015, 07:07
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Pasar cadena String a una variable Char en C++

Si tienes que c_str() te devuelve un char*... ¿en serio que no se te ocurre cómo copiar un string en un array de char??

Por cierto, lo de copiar char* usando el operador = es un error de principiante... en serio, echa un vistazo a los tutoriales de C y C++ que circulan por la red porque vas en caida libre sin paracaidas.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #5 (permalink)  
Antiguo 06/11/2015, 07:32
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Pasar cadena String a una variable Char en C++

Que tal ahora:

//Variable usada solamente para convertir la Palabra a Adivinar de String a Char y poder usar la función strcmp()
char PalabraAdivinarChar[PalabraAdivinar.size()];

//Pasamos la palabra String a la variable tipo Char letra por letra
i = 0;
while(i < PalabraAdivinar.size())
{
PalabraAdivinarChar[i] = PalabraAdivinar[i];
i++;
}

y = strcmp(PalabraAdivinarChar, Respuesta);

algo me dice que la funcion strcmp no esta funcionando, deberia de funcionar en c++?.
  #6 (permalink)  
Antiguo 06/11/2015, 10:57
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Pasar cadena String a una variable Char en C++

1. Si intento inicializar así un array de mi monitor sale una mano que me da de leches. Usa malloc, callo, o new para obtener esa memoria dinámica.
2. ¿que método es size ()? Si es un string tienes que usar length ().
3. Si usas strcmp para comparar entre strings ¿por qué no usas strcpy o strncpy para copiar la cadena? También se podría usar memcpy pero vamos con las dos primeras te sobra para lo que quieres.
  #7 (permalink)  
Antiguo 06/11/2015, 10:59
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Pasar cadena String a una variable Char en C++

Cita:
Iniciado por aguml Ver Mensaje
1. Si intento inicializar así un array de mi monitor sale una mano que me da de leches. Usa malloc, callo, o new para obtener esa memoria dinámica.
2. ¿que método es size ()? Si es un string tienes que usar length ().
3. Si usas strcmp para comparar entre strings ¿por qué no usas strcpy o strncpy para copiar la cadena? También se podría usar memcpy pero vamos con las dos primeras te sobra para lo que quieres.
Entiendo, dejame probar.
Solo para comentarte algo sobre size(), en la documentacion de string dice:

Capacity:
size
Return length of string (public member function )
length
Return length of string (public member function )

o sea, se puede usar tanto size como length, es lo mismo. "supuestamente".

Etiquetas: cadena, char, funcion, string, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:28.