Se a palavra do arquivo de entrada for igual a palavra tesoura deve-se imprimir um SIM no arquivo de entrada , caso contrário imprimir um NAO. Isso tudo usando Lista Encadeada.
Eu criei a lista encadeada, e consigo ler do arquivo de entrada. Mas na hora de fazer a comparação todas as palavras estao sendo impressas com SIM no arquivo de saida, mesmo sendo diferentes.. o que pode estar errado??
tenho esse codigo ae embaixo. peço ajuda.. obrigado.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define Null 0
int main(){
char lexema[100];
char x[100];
int i;
struct node{
char num[100];
struct node *next;
} *start, *p;
start = NULL;
FILE *entra; // PONTEIRO PARA O ARQUIVO ENTRADA.TXT
FILE *sai; // PONTEIRO PARA O ARQUIVO SAIDA.TXT
strcpy (lexema,"tesoura");
entra = fopen("entrada.txt","r"); // ABRINDO ARQUIVO ENTRADA.TXT
// INSERINDO DADOS DO ARQUIVO NA LISTA ENCADEADA
while (!feof(entra)){
fgets(x,100,entra);
p = start;
start = (struct node *)malloc(sizeof(struct node));
for(i=0;i<20;i++)
start->num[i] = x[i];
start->next = p;
} // TERMINO DA INSERÇÃO NA LISTA ENCADEADA.
sai = fopen("saida.txt","w");// ABRINDO ARQUIVO SAIDA.TXT
// PESQUISANDO NA LISTA ENCADEADA E GRAVANDO EM ARQUIVO DE SAÍDA
printf("\n\nGerado arquivo de saida!\n\n");
for (p > start; p != NULL; p = p->next){ // ANALISANDO ARQUIVOS DA LISTA ENCADEADA
if(strcmp(p->num,lexema)){
fprintf (sai, p->num);
fprintf(sai,"SIM\n");
}
else{
fprintf (sai, p->num);
fprintf(sai,"NAO\n");
}
}
// FIM DA ANÁLISE
system("PAUSE");
}










