pixie
08-03-2010, 15:33
Salve a tutti prima di esporvi il mio problema vi mostro il codice.
do{
buffer_temp [j] = buffer[k];
cout <<buffer_temp[j];
j++;k++;
if (buffer[k] == '\n') j=0;
else if (buffer[k] == ';' || buffer[k] == '\n')
{
buffer_temp[j]= NULL;
if (strcmp (ricerca, buffer_temp) == 0)
{ cout <<" Ci sono " <<++cont <<" parole uguali." <<'\n';
control = true;}
delete(buffer_temp);
j=0;
}
} while (k < x || control != true);
Scopo del codice: ho un elenco di dati preso da un file.txt e trova il numero di parole uguali.
Problema: mi incrementa il contatore solo se inserisco nella ricerca la prima parola dell'elenco.
Premetto: la delete () ho letto che serve per liberare la memoria dell'array cioè crearlo vuoto come lo si trova al primo avvio del programma ed è proprio quello mi serve ma sembra non faccia quello che deve fare.
Grazie dell'aiuto spero di essere stato esauriente.
do{
buffer_temp [j] = buffer[k];
cout <<buffer_temp[j];
j++;k++;
if (buffer[k] == '\n') j=0;
else if (buffer[k] == ';' || buffer[k] == '\n')
{
buffer_temp[j]= NULL;
if (strcmp (ricerca, buffer_temp) == 0)
{ cout <<" Ci sono " <<++cont <<" parole uguali." <<'\n';
control = true;}
delete(buffer_temp);
j=0;
}
} while (k < x || control != true);
Scopo del codice: ho un elenco di dati preso da un file.txt e trova il numero di parole uguali.
Problema: mi incrementa il contatore solo se inserisco nella ricerca la prima parola dell'elenco.
Premetto: la delete () ho letto che serve per liberare la memoria dell'array cioè crearlo vuoto come lo si trova al primo avvio del programma ed è proprio quello mi serve ma sembra non faccia quello che deve fare.
Grazie dell'aiuto spero di essere stato esauriente.