// Gustavo Cunha Ciola - 32247141 // Fernando Pegoraro Bilia - 32239882 // Theodoro Priosti de Almeida - 32229011 // João Vitor Tortorello - 32253796 #include #include #include #include "include/dicionario.h" int main() { FILE *input_file, *output_file; char word[50]; int dict_size = 0; // Abre o arquivo de entrada input_file = fopen("texto.txt", "r"); if (input_file == NULL) { printf("Erro ao abrir arquivo de entrada\n"); exit(1); } // Aloca memória para o dicionário de palavras char** dict = alocarMatriz(100, 50); // Lê as palavras do arquivo de entrada e insere no dicionário while (fscanf(input_file, "%s", word) != EOF) { to_lowercase(word); if (strcmp(word, ".") == 0) { break; } qsort(dict, dict_size, sizeof(char*), compare_strings); if (binary_search(dict, 0, dict_size-1, word) == -1) { insert_word(dict, &dict_size, word); } } // Fecha o arquivo de entrada fclose(input_file); // Abre o arquivo de saída output_file = fopen("dicionario.txt", "w"); if (output_file == NULL) { printf("Erro ao abrir arquivo de saída\n"); exit(1); } // Escreve as palavras do dicionário no arquivo de saída for (int i = 0; i < dict_size; i++) { fprintf(output_file, "%s\n", dict[i]); } fprintf(output_file, "\nTotal de palavras diferentes no dicionario: %d", dict_size); // Fecha o arquivo de saída fclose(output_file); // Libera a memória alocada para o dicionário de palavras free_dict(dict); return 0; }