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.