Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/12/2009, 10:40
zooo
 
Fecha de Ingreso: diciembre-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Comparaciones tipo char

aver te explico hasta donde yo se, si tu haces un array de char y lees con un gets C lo trata como una "cadena de texto" y por tanto si introduces hola el guarda cada letra en un indice y al final siempre mete un '\0' que para el significa fin de cadena.

para comparar cadenas se utiliza strcmp(cadena1,cadena2); pero esta funcion te delvorera 0 si son iguales -1 si la 1º es mayor que la segunda, y 1 si la 2º es mayor que la 1º.

una cosa que no entiendo de tu codigo es esto: pregunta->respuesta, que es eso? creo que no puedes ponerlo asi porque para C - es operador menos y > es mayor que, son operadores reservados, no se que pretendes con eso.

la funcion que utilizas strcpy no puede llamarse asi por lo menos en BORLAND, lleva como argumentos dos cadenas, y siempre copia lo de la 2º enla 1º: strcpy(cadena1,cadena2);

ahora si no quieres comparar cadenas y lo que quieres en comparar caracteres(de un vector de char), usa un bucle for que compare cada elemento de (char) c[cont] == 'x'(caracter); dentro de un if eso si.

cuando tu defines un vector de tipo char da = que le metas un simbolo, un numero o una letra de igual forma se tratan como caracteres asi que no tienes que comprobar nada, puedes hacer la conversion de char a int tipo entero por ejemplo.

como tu haces tu programa tu sabes en que indice de ese vector vas a guardar el sexo del personaje, pues compara ese indice con el caracter que quieres en un if, en tus if no le estas indicando en que indice quieres comparar, es decir:

if ( entrada[3] == 'f' || entrada[3] == 'F')
{
haz esto
}
tambien te puedes ahorrar algo en el if de la siguiente forma:

if ( toupper( entrada[3] ) == 'F')
{
haz esto
}

to upper esta en la libreria <ctype.h> ( en borland ) y sirve para convertir a mayuscula un caracter, al contratio seria tolower (minuscula)

no se si te abre servido de algo, sino pues vuelver a explicarte de otra forma aver si te entiendo mejor