/* Nome: Mario Cognome: Montanari Classe: 3AIN Data: 31/03/2025 es18. (occorrenze) Scrivere una funzione che, ricevuti in ingresso un nome di file e una parola S, restituisca il numero di occorrenze di S all'interno del file oppure -1 in caso di errore nella gestione del file. La funzione opera sotto le seguenti condizioni: una parola è una sequenza di caratteri priva di whitespace; un file è composto da una sequenza di parole separate da whitespace; la ricerca delle occorrenze è di tipo case insensitive. */ #include #include #define SIZE_LINE 1000+1 using namespace std; int contaOccorrenzeParola(const char * nomeFile, char * parola); int main(void) { char word[] = "the"; cout << contaOccorrenzeParola("romanzo.txt", word); return 0; } int contaOccorrenzeParola(const char * nomeFile, char * parola) { FILE * fp = fopen(nomeFile, "rt"); if (fp != NULL) { char str[SIZE_LINE]; int countWord = 0; for (int i = 0; parola[i] != '\0'; i++) { parola[i] = tolower(parola[i]); } while (fgets(str, sizeof(str), fp) != NULL) { for (int i = 0; str[i] != '\0'; i++) { str[i] = tolower(str[i]); } if (strstr(str, parola) != NULL) { countWord++; } } fclose(fp); return countWord; } else { return -1; } }