www.pudn.com > asdfadsfd.rar > 2.c


#include 
#include 
#include 
#include 
#include 
                                                                                                          
#define N 256 
                                                          
char buffer[N];   
 
char word[20]; 
 
char *kword[13]={"do","if","int","return","break","continue","while","for"}; 
 
 
int len; 
 
int count=0; 
 
 
int readbuffer(FILE *fp) 
{ 
char ch; 
len=0; 
ch=fgetc(fp); 
while(!feof(fp) && ch!='\n') 
{ 
buffer[len]=ch; 
ch=fgetc(fp); 
len++; 
} 
 
len--; 
 
if(feof(fp)) 
return 0; 
else 
return 1; 
 
} 
 
 
void check(char *str); 
 
void fenxi(char *row) 
{ 
 
 int k=0; 
 int i=0; 
 int ferror=0; 
 char str0[20]; 
 while(i<=len) 
 { 
  k=0; 
  strcpy(word,"\0"); 
 
  if(isspace(row[i])) 
  { 
   i++; 
      continue; 
  } 
 
 while(!isalpha(row[i])&&!isdigit(row[i])&&i<=len&&!isspace(row[i])&& 
 !(row[i]=='\0'||row[i]=='+' || row[i]=='-' || row[i]=='*' || row[i]=='/' 
 || row[i]=='(' || row[i]==')' || row[i]==',' || row[i]==';'|| row[i]=='{' 
 || row[i]=='}' || row[i]=='=')) 
 { 
  putchar(row[i]); 
  i++; 
  ferror=1; 
 
 } 
  if(ferror==1) 
  { 
 
   ferror=0; 
  } 
 
 if(row[i]=='/') 
  { 
   i++; 
   if(row[i]=='/') 
   { 
    i=len+1; 
    continue; 
   } 
   else 
    i--; 
  } 
 
 
     if(isdigit(row[i])) 
  { 
       while(i<=len&&!isspace(row[i])&&!(row[i]=='\0'||row[i]=='+' || 
       row[i]=='-' || row[i]=='*' || row[i]=='/' || row[i]=='(' || 
       row[i]==')' || row[i]==',' || row[i]==';'|| row[i]=='{'|| 
	row[i]=='}' || row[i]=='=')) 
 
 
   { 
 
              if(isdigit(row[i])) 
      { 
            str0[k]=row[i]; 
                  i++; 
      k++; 
 
      } 
         else 
      { 
 
       ferror=1;break; 
 
      } 
   } 
            if(ferror==1) 
   { 
    int j; 
    for(j=0;j