home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume17 / contest-prog / part02 / compare.c < prev    next >
C/C++ Source or Header  |  1989-02-06  |  1KB  |  55 lines

  1. #include <stdio.h>
  2. #define tab '\t'
  3. #define null '\0'
  4. #define newline '\n'
  5. main(argc,argv)
  6. char **argv;
  7. {
  8.     FILE *fpa, *fpb;
  9.     char linea[200], lineb[200];
  10.     char tempa[200], tempb[200];
  11.  
  12.     char *p, *q;
  13.     int eofa=0,eofb=0;
  14.     int compare;
  15.     if(argc!=3)exit(1);
  16.  
  17.     fpa=fopen(argv[1],"r");
  18.     if(fpa==(FILE *)0)exit(2);
  19.  
  20.     fpb=fopen(argv[2],"r");
  21.     if(fpb==(FILE *)0)exit(3);
  22.     eofa=eofb=0;
  23.     compare=0;
  24. read:
  25.     if(!eofa)if(fgets(linea,199,fpa)!=linea)eofa=1;
  26.     if(!eofb)if(fgets(lineb,199,fpb)!=lineb)eofb=1;
  27.     if(eofa && eofb)exit(compare);
  28.  
  29.     if(eofa&& !eofb)exit(4);
  30.     if(eofb&& !eofa)exit(5);
  31.     if(eofa || eofb)exit(6);
  32.  
  33. for(p=linea;*p;p++){if(*p==tab) *p=' ';if(*p==newline) *p=0;}
  34. for(p=lineb;*p;p++){if(*p==tab) *p=' ';if(*p==newline) *p=0;}
  35.     p=linea;
  36.     q=lineb;
  37. tightloop:
  38.     while(*p==' ' || *p==tab || *p==newline)p++;
  39.     while(*q==' ' || *q==tab || *q==newline)q++;
  40.     if(*p!= *q){
  41.         printf("them: %s\n",linea);
  42.         printf("  us: %s\n",lineb);
  43.         compare=1;
  44.         puts("------------------------------------");
  45.         goto read;
  46.         }
  47.     else{
  48.         p++;
  49.         q++;
  50.         if(*p==null)if(*q==null)goto read;
  51.         goto tightloop;
  52.     }
  53.  
  54. }
  55.