PDA

Visualizza la versione completa : [C] Segmentare le parole prese da un file


djstez
16-11-2011, 22:44
Salve a tutti,
sapreste dirmi come si fanno a spezzettare le parole di una frase che prendo in input da un file e stamparle a video.. poi ognuna di essa(parola) mi serve per metterla in una lista e contare quante volte viene ripetuta la stessa parola...
grazie :)

alka
17-11-2011, 02:22
Proponi la tua soluzione, e saremo ben felici di aiutarti in caso di difficoltà.

djstez
17-11-2011, 11:43
ECCO la mia soluzione... la funzione aspettoparola mi da la prima parola poi nel suo return faccio x+1 cosi mi sposto il puntatore all inizio della prossima parola ma quando chiamo la funzione sulla prossima parola mi da errore nell if...

char aspettaparola(char *x);
int main (int argc, const char * argv[]) {

char A[100];
char *ch;
int *max;
int i;
int numero = 10;

/* dichiara lo stream e il prototipo della funzione fopen */
FILE *stream;
/* apre lo stream del file */
stream = fopen("prova.txt", "r");
int allocati;
ch = fgets(A, 100, stream);
char *prossima;
max = (int *) malloc(sizeof(int) );
for(i=0;i<=5;i++){
max[i] = i;
printf("%d \n",max[i]);
}



prossima = aspettaparola(ch);
fclose(stream);
return 0;
}
char aspettaparola(char *x){
int i ;
for (i = 0;i<100; i++) {

if(x[i] != ' ')
printf("%c",x[i]);
else
break;
}
printf("\n");
return x[i+1];

}

torn24
17-11-2011, 14:42
se leggi l'intero file con fscanf prelevi dal file una parola alla volta
legge fino a quando incontra uno spazio o \n






FILE *stream;

stream=fopen("prova.txt","r");
while(!=feof(stream))
{

fscanf(stream,"%s",parola);
puts(parola);


}

fclose(stream);

Loading