Hola, estoy intentando hacer algo, pero no se me ocurre.
Leo de un fichero que contiene palabras separadas por espacios. Necesito leer N palabras y meter esas N en un vector de strings, para luego llamar a una función Hash y luego quitar la primera palabra, mover el resto de las palabras una posicion a la izquierda, añadir la siguiente palabra al final y volver a llamar a la funcion Hash.
Lo he intentado de muchas formas y no me sale
Hasta el momento no consigo leer de N en N palabras. Me falla y no se como arreglarlo:
Código:
void pasar_a_hash (char *fich, unsigned int conjuntos) {
FILE *temp;
char *vector_palabras[N];
char *buffer;
unsigned int i, j;
temp = fopen (fich, "r");
for (j = 0; j < N; j++) { /* Ponemos las primeras N palabras en el vector */
fscanf (temp, "%s", buffer);
vector_palabras[j] = buffer;
printf ("%s ", vector_palabras[j]); /*<------- Esto me lo muestra bien */
}
for (j = 0; j < N; j++)
printf ("%s ", vector_palabras[j]); /*<------- Esto me lo muestra MAL */
printf ("\n");
i = 1;
while (i < conjuntos) { /* Hasta el numero de conjuntos - 1 */
/* LLAMAR A FUNCION HASH AQUI */
for (j = 0; j < N - 1; j++) /* Movemos las palabras de sitio */
vector_palabras[j] = vector_palabras[j + 1];
fscanf (temp, "%s", vector_palabras[N - 1]);
printf ("\n%s\n", vector_palabras[N - 1]); /*<---- Este lo muestra bien*/
i++;
for (j = 0; j < N; j++)
printf ("%s ", vector_palabras[j]); /*<--- Este lo muestra MAL*/
}
fclose (temp);
}
gracias!!