#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
#define TRUE 1
#define FALSE 0
#define MYNULL -1
#define ERROR -1
typedef int boolean;
typedef struct query_s
{
char a[MAX];
int position;
boolean occupied;
}query_t;
void initiate(query_t *q)
{
int i;
for(i=1; i<MAX; i++)
{
q[i].occupied = FALSE;
q[i].position = 0;
}
}
int main(int argc, char *argv[])
{
query_t item[MAX];
query_t value[MAX];
query_t temp[MAX];
char ch;
char space;
int i,j,h,k,l,query_max;
FILE *query;
FILE *data;
initiate(item);
initiate(value);
query
= fopen("op2query.txt","r"); i = 0;
while ( ( ch
= fgetc(query
) ) != EOF
) {
fscanf(query
,"%[^\n]",item
[i
].
a); item[i].occupied = TRUE;
i++;
}
if (item[0].occupied == TRUE)
{
for (j=0; j<=i; j++)
{
}
}
else
printf("The query file is empty"); query_max = i;
data
= fopen("op2data.txt","r"); j = 0;
i = 0;
h = 0;
k = 0;
space = 32;
while ( fscanf(data
,"%s",&value
) !=EOF
) {
while (item[h].a[k] != space)
{
k++;
}
for (l=0;l<=k;l++)
{
temp[h].a[l]=item[h].a[l];
}
if (temp[j].a != value[i].a)
{
item[j].position++;
i++;
}
else
{
item[j].position++;
item[j].occupied = FALSE;
j++;
}
h++;
}
for (i=0;i<=query_max;i++)
{
if (item[i].occupied == FALSE)
{
printf("%s %d \n",item
[i
].
a,item
[i
].
position); }
else
}
}
I2luY2x1ZGU8c3RkaW8uaD4gCiNpbmNsdWRlPHN0ZGxpYi5oPgojaW5jbHVkZTxzdHJpbmcuaD4KI2RlZmluZSBNQVggMTAwCiNkZWZpbmUgVFJVRSAxCiNkZWZpbmUgRkFMU0UgMAojZGVmaW5lIE1ZTlVMTCAtMQojZGVmaW5lIEVSUk9SIC0xCgp0eXBlZGVmIGludCBib29sZWFuOwoKdHlwZWRlZiBzdHJ1Y3QgcXVlcnlfcyAKewogICAgY2hhciBhW01BWF07CiAgICBpbnQgcG9zaXRpb247CiAgICBib29sZWFuIG9jY3VwaWVkOwp9cXVlcnlfdDsgCgp2b2lkIGluaXRpYXRlKHF1ZXJ5X3QgKnEpCnsKCWludCBpOwoJZm9yKGk9MTsgaTxNQVg7IGkrKykKCXsKCQlxW2ldLm9jY3VwaWVkID0gRkFMU0U7CgkJbWVtc2V0KHFbaV0uYSxNWU5VTEwsTUFYKTsKCQlxW2ldLnBvc2l0aW9uID0gMDsKCX0KfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgCnsKCXF1ZXJ5X3QgaXRlbVtNQVhdOwoJcXVlcnlfdCB2YWx1ZVtNQVhdOwoJcXVlcnlfdCB0ZW1wW01BWF07CgljaGFyIGNoOwoJY2hhciBzcGFjZTsKCWludCBpLGosaCxrLGwscXVlcnlfbWF4OwoJRklMRSAqcXVlcnk7CglGSUxFICpkYXRhOwoKCWluaXRpYXRlKGl0ZW0pOwoJaW5pdGlhdGUodmFsdWUpOwoJcXVlcnkgPSBmb3Blbigib3AycXVlcnkudHh0IiwiciIpOwoJaSA9IDA7Cgl3aGlsZSAoICggY2ggPSBmZ2V0YyhxdWVyeSkgKSAhPSBFT0YgKQoJewoJICBmc2NhbmYocXVlcnksIiVbXlxuXSIsaXRlbVtpXS5hKTsKICAgICAgaXRlbVtpXS5vY2N1cGllZCA9IFRSVUU7CiAgICAgIGkrKzsKICAgICAgCgl9CglmY2xvc2UocXVlcnkpOwoJaWYgKGl0ZW1bMF0ub2NjdXBpZWQgPT0gVFJVRSkKCXsKCQlwcmludGYoIlRoZSBxdWVyaWVzIDogXG4iKTsKCQlmb3IgKGo9MDsgajw9aTsgaisrKQoJCQl7CgkJCQlwdXRzKGl0ZW1bal0uYSk7CgkJCX0KCX0KCWVsc2UKCQlwcmludGYoIlRoZSBxdWVyeSBmaWxlIGlzIGVtcHR5Iik7CglxdWVyeV9tYXggPSBpOwoJZGF0YSA9IGZvcGVuKCJvcDJkYXRhLnR4dCIsInIiKTsKCWogPSAwOwoJaSA9IDA7CgloID0gMDsKCWsgPSAwOwoJc3BhY2UgPSAzMjsKCXdoaWxlICggZnNjYW5mKGRhdGEsIiVzIiwmdmFsdWUpICE9RU9GICkKCXsKCQltZW1zZXQodGVtcFtoXS5hLDAsMTApOwoJCXdoaWxlIChpdGVtW2hdLmFba10gIT0gc3BhY2UpCgkJewoJCQlrKys7CgkJfQoJCWZvciAobD0wO2w8PWs7bCsrKQoJCXsKCQkJdGVtcFtoXS5hW2xdPWl0ZW1baF0uYVtsXTsKCQl9CgkJaWYgKHRlbXBbal0uYSAhPSB2YWx1ZVtpXS5hKQoJCXsKCQkJaXRlbVtqXS5wb3NpdGlvbisrOwoJCQlpKys7CgkJfQoJCWVsc2UKCQl7CgkJCWl0ZW1bal0ucG9zaXRpb24rKzsKCQkJaXRlbVtqXS5vY2N1cGllZCA9IEZBTFNFOwoJCQlqKys7CgkJfQoJCWgrKzsKCQkKCX0KCWZvciAoaT0wO2k8PXF1ZXJ5X21heDtpKyspCgl7CgkJaWYgKGl0ZW1baV0ub2NjdXBpZWQgPT0gRkFMU0UpCgkJewoJCQlwcmludGYoIiVzICVkIFxuIixpdGVtW2ldLmEsaXRlbVtpXS5wb3NpdGlvbik7CgkJfQoJCWVsc2UKCQkJcHJpbnRmKCIlcyAtLSBcbiIsaXRlbVtpXS5hKTsKCX0KfQoJCgkKCQ==