forse mi sono spiegata male... ora vi spiego il mio programma.
ci sono due modalità di gioco:
0) dichiaro la stringa parola globalmente come char parola[20]
1) player1 vs player2 dove leggo la parola da tastiera attraverso lo
scanf e la memorizzo nella stringa parola
2) player1 vs pc dove la parola viene letta da file con il seguente
codice:

---------------------------
printf("\n\n----- GIOCATORE vs COMPUTER -----\n");
printf("\nInserisci il nome del giocatore (max 20 char): ");
scanf("%s", gioc1);
printf("\nCOMPUTER: sto scegliendo la parola...");
fd=open("...", O_RDONLY);
if(fd==-1)
{
printf("\nIMPOSSIBILE accedere al file! Riprovare!\n");
...
}
t=rand()%NUM_PAROLE;
if (!(t>0 && t<=NUM_PAROLE))
{
perror("\nErrore nella scelta random della parola.
Riprovare.\n");
...
}
do
{
a=read(fd, lettera, 1);
num=lettera[0]-'0';
if(num==t && lettera[0]!=EOF)
{
for(;
{
a=read(fd, lettera, 1);
if(lettera[0]=='#')
{
a=0;
break;
}
else
parola[i]=lettera[0];
i++;
}
}
} while(a>0);
printf("\nLettura parola fatta!!\n");
close(fd);
-----------------------------------------------------

il mio file è di questo tipo:
1insalata#
2ciao#
3computer#
4programmazione#
5linux#
...
e la parola viene scelta creando un numero random e leggendo la parola corrispondente.
ipotizziamo che:
a- il primo nr random creato è 4 -> viene scelta la parola programmazione e il gioco è ok.
b- l'utente gioca di nuovo e il secondo nr random è 5 -> in PAROLA ho 'linuxammazione' perché, letto il carattere #, il ciclo sopra finisce e le ultime lettere rimangono lì.
ed ecco il mio problema: la parola nn è linux quindi l'utente, anche l'avesse indovinata, gli da errore.
avevo pensato di, una volta letto #, sostituire tutte le altre lettere con un blank ma la funzione strlen(parola) mi restituisce 14 invece di 5 e mi sfalsa tutti i cicli successivi.

allora come faccio a, finita la prima partita, ad cancellare la stringa parola?? in java avrei semplicemente fatto parola=null; ma in c come si fa???
grazie a quelli ke mi hanno risp e a quelli ke mi risponderanno