Jump to content


Photo

Ajuda Com Strcmp No Em Linguagem C


  • Faça o login para participar
1 reply to this topic

#1 Gabriel2ny

Gabriel2ny

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino

Posted 02/10/2006, 10:39

Pessoal, estou fazendo um programa onde eu tenho q ler um arquivo de entrada.txt que contem algumas palavras(uma palavra por linha). Depois tenho q pegar cada uma dessas palavras e comparar com a palavra "tesoura". Em seguida tenho q gerar um arquivo de saída.txt contendo cada uma das palavras da lista de entrada e na frente de cada palavra deve ter a palavras SIM ou NAO.
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");
}


#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 03/10/2006, 11:54

Para saber se são idênticas, você deve comparar o retorno da função strcmp() ao valor 0.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq