Problema con variables tipo char [Resuelto]

Iniciado por Danyel_Casvill, 18 Agosto 2011, 16:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Danyel_Casvill

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. ^^
adada

bigfu

#1
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.
A reader lives a thousand lives before he dies. The man who never reads lives only one

Danyel_Casvill

#2
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)
adada

satu

Breakbeat como forma de vida

PiroskY

Cuando vas a comparar strings usas strcmp.
si vas a comparar solo un carácter lo podes hacer con == 'x'.