ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(左括號(hào)運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘[‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(右中括號(hào)運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘]‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(左中括號(hào)運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘-‘) { token[i++]=ch; ch=fgetc(input); if(ch==‘-‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(自加運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } else if (ch==‘>‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(指針運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(負(fù)運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘.‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(點(diǎn)運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘&‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(地址與運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘!‘) { token[i++]=ch; ch=fgetc(input); if(ch==‘=‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(不等于比較符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(取反運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘~‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(按位運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘*‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(乘運(yùn)算符\t,%-16s)\t%4d\t\n",count,token,i); continue; } else if(ch==‘%‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(求余運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘/‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(除法運(yùn)算符\t,%-16s)\t%4d\t\n",count,token,i); continue; } else if(ch==‘<‘) { token[i++]=ch; ch=fgetc(input); if(ch==‘=‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(小于等于比較符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } if(ch==‘<‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(左移運(yùn)算符\t,%-16s)\t%4d\t\n",count,token,i); ch=fgetc(input); continue; } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(小于比較符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘>‘) { token[i++]=ch; ch=fgetc(input); if(ch==‘=‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(大于等于比較符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } if(ch==‘>‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(右移運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(大于比較符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘=‘) { token[i++]=ch; ch=fgetc(input); if(ch==‘=‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(等于比較符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(賦值運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘,‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(逗號(hào)界符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘;‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(分號(hào)界符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘{‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(邊界運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘}‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(邊界運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘+‘) { token[i++]=ch; ch=fgetc(input); if(ch==‘+‘) { token[i++]=ch; token[i]=‘\0‘; count++;fprintf(output,"%4d\t(自加運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); ch=fgetc(input); continue; } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(加運(yùn)算符\t,%-16s)\t%4d\n",count,token,i); continue; } else if(ch==‘"‘) { token[i++]=ch; ch=fgetc(input); while(ch!=‘"‘&&ch!=EOF) { token[i++]=ch; ch=fgetc(input); } if(ch==‘"‘) { token[i++]=ch; ch=fgetc(input); token[i]=‘\0‘; count++;fprintf(output,"%4d\t(字符串\t\t,%-16s)\t%4d\n",count,token,i); continue; } else { while(ch!=EOF) { token[i++]=ch; ch=fgetc(input); } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(字符串錯(cuò)誤\t,%-16s)\t%4d\n",count,token,i); } } else { while(ch!=‘ ‘&&ch!=‘\t‘&&ch!=‘\n‘&&ch!=EOF) { token[i++]=ch; ch=fgetc(input); } token[i]=‘\0‘; count++;fprintf(output,"%4d\t(無法識(shí)別錯(cuò)誤\t,%-16s)\t%4d\n",count,token,i); continue; } } fclose(input); fclose(output); } /*判斷是不是關(guān)鍵字: int reserver(char *str) if(strcmp(str,"sizeof")==0) /* 輸入文件input.txt #include<stdio.h> void E(char *); void main() void E(char *str) void E1(char *str) } void T(char *str) void F(char *str) */ /* 關(guān)鍵字文件keyword.txt auto break case char const */ |
|