Files
2023-05-10 09:28:59 -03:00

63 lines
1.6 KiB
C

// Gustavo Cunha Ciola - 32247141
// Fernando Pegoraro Bilia - 32239882
// Theodoro Priosti de Almeida - 32229011
// João Vitor Tortorello - 32253796
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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;
}