Estoy teniendo algunas dificultades a la hora de realizar unas comparaciones con variables de tipo char.
Resulta que tengo una variable declarada de la siguiente forma:
char entrada[100];
En esta variable voy a almacenar unos datos recogidos por teclado. En principio yo no se qué voy a recoger, si un solo caracter, una cadena de caracteres, un número...Esto podría hacerlo declarando varias variables y almacenandolo en variables distintas después de comprobar el tipo de datos que voy a introducir...pero creo que el código me quedaría peor y mas extenso
Me explico: Esta variable la utilizo en un TAD en el que almaceno los datos de una pregunta: ID, texto, tipo de datos de un personaje a los que afecta y respuesta esperada.
Si el tipo de datos a los que afecta es al sexo del personaje, entonces la respuesta esperada será un caracter, igual que si afecta al estado civil; si afecta a la nacionalidad, será una cadena de caracteres...etc
Por esto, la respusta esperada la almaceno en entrada y luego hago las comparaciones pertinentes para ver si es una respuesta válida. El problema viene aqui:
Si, por ejemplo, estoy con una pregunta que afecte al sexo, al comparar la entrada con los caracteres "f", "F", "m" y "M" no me realiza bien la comparación.
¿Alguien podría decirme cómo hacerlo? Gracias d antemano. Os pongo el código que tengo:
Código c:
Ver original
if(entrada[0]==0) { respuesta(); //función que abre un archivo de texto con la ayuda } if(pregunta->afecta == 2) //el codigo 2 es el del sexo { do { if(entrada == 'f' || entrada == 'F') { cont++; } //a pesar de que en el debugger se ve que entrada adopta el valor 'f' (por ej), no entra en el if if(entrada == 'm' || entrada == 'M') { cont++; } //si no se ha seleccionada F, f, M o m if(cont == 0) //al no entrar en los if, el contador no aumenta y entramos aqui: respuesta esperada erronea... { } }while(cont==0); }
Con strcmp también me da error
