湖州童装网站网站的数据库选择
湖州童装网站,网站的数据库选择,广州建设局官方网站,wordpress dedecms discuz实验任务#xff1a;
实现识别标识符的词法分析器
实验要求#xff1a;
根据编译原理理论课教材中图2.3“标识符的转换图”#xff0c;用C语言编写识别标识符的词法分析器#xff0c;以文本文件为输入#xff0c;控制台#xff08;或文件#xff09;输出识别出的每个…实验任务
实现识别标识符的词法分析器
实验要求
根据编译原理理论课教材中图2.3“标识符的转换图”用C语言编写识别标识符的词法分析器以文本文件为输入控制台或文件输出识别出的每个标识符。
实验内容
将txt文件里的内容作为输入的字符串去除掉文本中的空格后按照种别码进行识别判断用自定义函数数字判断、字母判断和符号判断作为标识符和关键字的判断工具。 运行结果如图 主要代码
源代码
输入
intdasd,j48494hjkasinteia2main31012-07,0x16
输出
关键字:int 标识符:d 标识符:asd 标识符:j48494h 标识符:jkasinteia2main31012 标识符:x16
#includestdio.h
#includestring.h
#includestdlib.hvoid main(){FILE *in,*out;char w;int flag;char str;char words[100][100]{\0};//最多存放长度为100的100个单词int i0,j0;char letter[10000];//存放文件取出的字符,最长10000 int length0;//所有字符的长度int num0;//当前所在位置if( (infopen(example.txt,r)) NULL ){printf(cant open file!\n);exit(0);}elseprintf(打开文件成功\n);if( (outfopen(result.txt,w)) NULL ){printf(cant open file!\n);exit(0);}elseprintf(打开文件成功\n);while( !feof(in) ){wfgetc(in);if(w! ){letter[length]w;length;} //去掉程序中的空格}flag1;while(flag){for(j0;numlength;num,j){strletter[num];if( stra strz || strA strZ || str_ || (j!0 str0 str9) ){words[i][j]letter[num];if( !(strcmp(words[i],main)strcmp(words[i],int)strcmp(words[i],if)strcmp(words[i],else)strcmp(words[i],while)strcmp(words[i],do)strcmp(words[i],then)) ){//若以此首字母开头 先组成了关键字 则先输出该关键字 fputs(关键字:,out);fputs(words[i],out);fputs(\n,out);i;num;break;}}elseif(words[i][0]\0){num;break;}else{fputs(标识符:,out);fputs(words[i],out);fputs(\n,out);num;i;break;}}if(numlength)flag0;}fclose(in);//关闭文件 fclose(out);//关闭文件 printf(完成请查看\n);
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87665.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!