⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bianyi1.cpp

📁 1.词法分析 设计、编制并调试该C语言子集的词法分析程序
💻 CPP
字号:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
void main()
{FILE *fp;
 char str[255];
  fp=fopen("Program.txt","r");
  int i=0;
  char c;int flag=1,flag1=1;
  while(1) {
	          fgets(str,255,fp);
              puts(str);
	          i=0; 
			  flag=1;
			  flag1=1;int flag2=0;
			  while(str[i]==' ') i++;//删除空格
			  while(str[i]!='\n')
			   { 
				 while(flag)
				   {
					 while(str[i]>='a'&&str[i]<='z'&&str[i]!=' ')
					 {  i++; flag2=1;
						while(str[i]<='9'&&str[i]>='0')
							i++;
							}
					 if(flag2)
					 {
					c=str[i];
	              str[i]='\0';
	             if(strcmp("if",str)==0||strcmp("int",str)==0||strcmp("for",str)==0||strcmp("do",str)==0||strcmp("continue",str)==0||strcmp("return",str)==0||strcmp("break",str)==0)
				 {printf("(1,%s)\n",str);str[i]=c;flag=0;}
		         else
				 {printf("(2,%s)\n",str);str[i]=c;flag=0;}
					 }
					 else flag=0;
		                
			   }
			   
	      while(str[i]==' ') i++;//删除空格
		       if(str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/'||str[i]=='=')
					{   i++;
			          printf("(4,%c)\n",str[i]);
					}
            while(str[i]==' ') i++;//删除空格
		  
		   while(str[i]<='9'&&str[i]>='0')//查找是数字的符号
				{
			       for(int j=0;j<i;j++)
			       str[j]=' ';
			       char mm[255]; j=0;
		           mm[j]=str[i];
			        i++;
			       if(str[i]==' ')
					{
					   printf("(3,%s)\n",mm);
				        break;
						}
				}
		if(str[i]==','||str[i]==';'||str[i]=='('||str[i]==')'||str[i]=='}'||str[i]=='{')
			{
				printf("(5,%c)\n",str[i]);
				i++;
				}
		}
	if(feof(fp)) 
	   break;
  }
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -