Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Danyel_Casvill en 18 Agosto 2011, 16:06 PM

Título: Problema con variables tipo char [Resuelto]
Publicado por: Danyel_Casvill en 18 Agosto 2011, 16:06 PM
Hola!!

Quiero hacer un programa el cual se ingrese una palabra, que se almacene en una variable de tipo char y se compare con una palabra.

Asi quedo el programa:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
char pal[10];
do
{
  cout<<"Ingrese una palabra:";cin>>pal;
}
while(strcmp(pal,"xd") != 0);


cout<<"Palabra valida !!";

cin.get();cin.get();
return 0;
}
  //Corre a la perfección  ;)




Tambien se puede hacer el progrma guardando la palabra a comparar en otra variable.

Por cierto, aquí el programa usando string:
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
string pal;

do
{
  cout<<"Ingrese una palabra:";cin>>pal;
}
while(pal != "xd");

  cout<<"Palabra correcta!!";

cin.get();cin.get();
return 0;
}



Listo muchachos, ya quedo bien, gracias por su ayuda, algo nuevo se aprende cada dia :D Saludos ^^

Gracias a Bigfu, satu y PiroskY. ^^
Título: Re: Problema con variables tipo char
Publicado por: bigfu en 18 Agosto 2011, 16:13 PM
Las comillas ' ' se usan para un solo caracter. Debes usar " " para cadena de caracteres.
Si quieres puedes ahorrarte el segundo if, puedes poner directamente else y la sentencia cout

EDIT: No lo había visto antes. Para comparar una cadena de caracteres, debes de ir caracter a caracter, no puedes compararlas "del tirón" (a no ser que sea de tipo string). Puedes, por ejemplo, hacer una función de tipo booleano que vaya comparando carácter a carácter las dos palabras.
Título: Re: Problema con variables tipo char
Publicado por: Danyel_Casvill en 18 Agosto 2011, 16:21 PM
Cita de: bigfu en 18 Agosto 2011, 16:13 PM
Las comillas ' ' se usan para un solo caracter. Debes usar " " para cadena de caracteres.
Si quieres puedes ahorrarte el segundo if, puedes poner directamente else y la sentencia cout

EDIT: No lo había visto antes. Para comparar una cadena de caracteres, debes de ir caracter a caracter, no puedes compararlas "del tirón" (a no ser que sea de tipo string). Puedes, por ejemplo, hacer una función de tipo booleano que vaya comparando carácter a carácter las dos palabras.

(Primero que todo gracias por responder  ;-))

Jaja, miercoles!! :xD Gracias, aunque justo no se manejar variables tipo bool  :silbar:, ¿habría alguna otra forma de hacerlo? (Claro, usando char)
Título: Re: Problema con variables tipo char
Publicado por: satu en 18 Agosto 2011, 17:16 PM
Hola

Utiliza la función strcmp (http://www.cplusplus.com/reference/clibrary/cstring/strcmp/)

Saludos
Título: Re: Problema con variables tipo char
Publicado por: PiroskY en 18 Agosto 2011, 18:23 PM
Cuando vas a comparar strings usas strcmp.
si vas a comparar solo un carácter lo podes hacer con == 'x'.