/* Nome: Mario Cognome: Montanari Classe: 3AIN Data: 02/04/2025 Dato il file “60000_parole_italiane.txt” contare: - Il numero esatto di parole (1 parola per riga, una parola può essere di un solo carattere) - Le parole che contengono almeno una doppia consonante - Le parole parivocaliche (es banana, muse) - Le parole di lunghezza 6 - Le parole palindrome - Visualizzare la 34567° parola - Verificare che le parole siano scritte in ordine alfabetico */ #include #define SIZE_LINE 1000+1 using namespace std; bool isVowel(char chr); int contaParole(const char * nomeFile); int contaDoppieConsonanti(const char * nomeFile); //int contaParoleParivocaliche(const char * nomeFile); int paroleLunghe6(const char * nomeFile); //int leggiParola34567(const char * nomeFile); int main(void) { cout << "Parole presenti nel file: " << contaParole("60000_parole_italiane.txt") << endl; cout << "Parole con doppie consonanti: " << contaDoppieConsonanti("60000_parole_italiane.txt") << endl; cout << "Parole lunghe 6 caratteri: " << paroleLunghe6("60000_parole_italiane.txt") << endl; //cout << "Parola numero 34567: " << leggiParola34567("60000_parole_italiane.txt") << endl; return 0; } bool isVowel(char chr) { return (strchr("aeiouAEIOU", chr)); } int contaParole(const char * nomeFile) { int countWord = 0; FILE * fp = fopen(nomeFile, "rt"); if (fp != NULL) { char chr; while ((chr = fgetc(fp)) != EOF) { if (chr == '\n') { countWord++; } } fclose(fp); } else { perror("Error"); } return countWord; } int contaDoppieConsonanti(const char * nomeFile) { int countDoubleConsonant = 0; int countConsonant = 0; FILE * fp = fopen(nomeFile, "rt"); if (fp != NULL) { char str[SIZE_LINE]; while (fgets(str, sizeof(str), fp) != NULL) { countConsonant = 0; for (int i = 0; str[i] != '\0'; i++) { if (str[i] == str[i + 1]) { countConsonant++; } } if (countConsonant != 0) { countDoubleConsonant++; } } fclose(fp); } else { perror("Error"); } return countDoubleConsonant; } /*int contaParoleParivocaliche(const char * nomeFile) { int parivocalicWord = 0; FILE * fp = fopen(nomeFile, "rt"); if (fp != NULL) { char str[SIZE_LINE]; while (fgets(str, sizeof(str), fp) != NULL) { for (int i = 0; str[i] != '\0'; i++) { if (isVowel(str[i]) && isalpha(str[i])) { } } } fclose(fp); } else { perror("Error"); } }*/ int paroleLunghe6(const char * nomeFile) { int wordLunghe6 = 0; FILE * fp = fopen(nomeFile, "rt"); if (fp != NULL) { char str[SIZE_LINE]; while (fgets(str, sizeof(str), fp) != NULL) { if (str[strlen(str) - 1] == '\n') { str[strlen(str) - 1] = '\0'; } if (strlen(str) == 6) { wordLunghe6++; } } fclose(fp); } else { perror("Error"); } return wordLunghe6; } /*int leggiParola34567(const char * nomeFile) { }*/