Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] desespero comparacion cadenas

Estas en el tema de desespero comparacion cadenas en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un programa en c, donde tengo que leer desde fichero un dato y comprobar si ya existe en un vector de cadenas....he ...
  #1 (permalink)  
Antiguo 04/05/2010, 10:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
desespero comparacion cadenas

Hola, estoy haciendo un programa en c, donde tengo que leer desde fichero un dato y comprobar si ya existe en un vector de cadenas....he intentado todo, pero todo y mas, pero no me compara bien. Gracias de antemano por las molestias xD.

Leo desde fichero por ejemplo "add" o "addf" y quiero que me compruebe que ya existen en el vector *nemonicos[].

void SegundaPasada(FILE *Fich, const char *VecEti[]){

char *nemonicos[2] = { "addf", "add" };
char cadena[100];
char *nemonico, nemo[20];

while(fgets(cadena,100,Fich) != NULL){
nemonico = strtok(cadena, " "); //recojo el nemonico
strcpy(nemo, nemonico);
int posnemo;
posnemo = BuscarNemonico(nemo, nemonicos);
}
}


----FUNCION QUE COMPARA---

int BuscarNemonico(char *nemo, char *nemonicos[]){
int encontrado;
int i;

encontrado = 0;
printf("%s %s ", nemo, nemonicos[1]);
printf("%d\n",strcmp(nemo, nemonicos[1]));

return (encontrado);
}

comparo la palabra que le llega con el segundo valor del vector "add" y el strcmp me devuelve siempre -1 o 1, no detecta si la cadena es la misma.

Un dato, si a nemo le asigno directamente la cadena que quiero que compare como es nemo = "add"; y la paso a la función si me funciona bien. Tiene que ser algo de strtok que no le reserva memoria al valor, eso intuyo yo.
  #2 (permalink)  
Antiguo 04/05/2010, 11:00
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: desespero comparacion cadenas

Imprime los strings y los largos de ellos, si son distintos, strtok o strcmp no son culpables, sino que el string que estas comparando contiene caracteres que no ves, pero que las funciones si.

Seria bueno que mostraras el contenido del archivo y la salida de tu programa para tal archivo.
  #3 (permalink)  
Antiguo 04/05/2010, 11:52
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: desespero comparacion cadenas

tienes toda la razón, lelvo una semana con este rollo y no me había dado cuenta, eso es de lo quemadísimo que estaba. El fichero tiene en algunos casos tabulaciones al principio y eso se añade a la cadena.
Diosss pero que tronco!!

Etiquetas: cadenas, comparacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:32.