Foro de elhacker.net

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
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. char pal[10];
  9. do
  10. {
  11.  cout<<"Ingrese una palabra:";cin>>pal;
  12. }
  13. while(strcmp(pal,"xd") != 0);
  14.  
  15.  
  16. cout<<"Palabra valida !!";
  17.  
  18. cin.get();cin.get();
  19. return 0;
  20. }
  21.  //Corre a la perfección  ;)
  22.  



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

Por cierto, aquí el programa usando string:
Código
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. string pal;
  9.  
  10. do
  11. {
  12.  cout<<"Ingrese una palabra:";cin>>pal;
  13. }
  14. while(pal != "xd");
  15.  
  16.  cout<<"Palabra correcta!!";
  17.  
  18. cin.get();cin.get();
  19. return 0;
  20. }
  21.  
  22.  

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
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'.