-
Notifications
You must be signed in to change notification settings - Fork 0
/
comparador.c
34 lines (32 loc) · 940 Bytes
/
comparador.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include "funcoes.h"
int main(int argc, char **argv)
{
if(argc != 4)
{
printf("%s arquivo_base arquivo_comparacao arquivo_saida\n", argv[0]);
return -1;
}
char *nomeBase = argv[1];
char *nomeComparar = argv[2];
char *nomeNovaLista = argv[3];
long long int qtdBase = quantidadeLinhasNoArquivo(nomeBase);
long long int qtdComparar = quantidadeLinhasNoArquivo(nomeComparar);
char **strsBase = alocaMemoriaArquivo(nomeBase);
char **strsComparar = alocaMemoriaArquivo(nomeComparar);
qsort(strsBase, qtdBase, sizeof(char *), comparaString);
FILE *arquivo = fopen(nomeNovaLista, "w");
for(int i = 0; i < qtdComparar;i++)
{
if(bsearch(strsComparar+i,strsBase, qtdBase, sizeof(char *), comparaString) == NULL)
{
fputs(strsComparar[i], arquivo);
fputc('\n', arquivo);
}
}
fclose(arquivo);
free(strsBase);
free(strsComparar);
return 0;
}