Salve a tutti, sto facendo un esercizio dove devo leggere da file delle stringhe, salvarle in un vettore e prendere i primi 6 caratteri di ogni stringa. Ho scritto così:

codice:
#include <stdio.h>
#define M   20
#define N   30

int lettura(char parole[][N]){
    FILE *f;
    int i;
    int num;
    f=fopen("parole.txt", "r");
    fscanf(f, "%d", &num);
    while(!feof(f)){
        for(i=0; i<num; i++){
            fscanf(f, "%s", &parole[i]);
        }
    }
    fclose(f);
    return num;
}

int main(){
    int dim;
    int i, j;
    char parole[M][N];
    char caratteri[M][6];
    dim=lettura(parole);
    for(i=0; i<dim; i++){
        for(j=0; j<6; j++){
            caratteri[i][j]=parole[i][j];
        }
        printf("%s\n", caratteri[i]);
    }
}
Legge i primi 6 caratteri ma non so perchè aggiunge dei caratteri strani alla fine di ogni parola:



Aiuto!