编译原理第一次作业.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第一次作业

《编译原理》课程实验报告 实验地点 实验时间 实验名称: 第一次使实验 实验目的: 重温C语言程序设计,重温程序设计从编辑、编译到连接的全过程,理解编译器的重要性。 实验要求(详见实验讲义与实验指导书): 键盘输入任意字符串,统计其中数字、字母的个数并输出到终端。 输入:字符串 输出:(数字,SUMD);(字母,SUML) 其中SUMD和SUML分别为统计出的数字和字母的个数。 查找给定文件中的C语言注释行,并输出其内容。 输入:文本文件“test.txt” 输出:文件中C语言注释行的内容(注:结果同时输出到文件) 提示:注释行以“/* */”或“// ”标示 实验内容及关键步骤(算法描述(流程图或伪代码)、代码) 1.1、算法描述 输入一个字符串 使用for循环检测每个字符,判断是否为字母或数字,判断的条件: 字母:if(str[i] = Astr[i] = Z|| str[i] = astr[i]=z){ 字母数量++; } 数字:if(str[i] =0str[i]=9){ 数字数量++; } 输出最后结果 1.2、流程图描述 是 否 是 否 是 否 2.1、算法描述 读取的模式打开一个txt的一个文件,逐行读入文件的内容 检测每行中的每个字符,判断是否为//注释行或为/**/注释行 判断条件 //注释行: if (buffer[i] == /buffer[i + 1] == /op ==false){//当前的字符为’/‘,下个字符为‘/’ 直接输出注释行内容 跳出当行的字符循环 } /**/注释行 if (op == true){ 该字符是/**/内的字符, 将该字符保存到pstr的字符串中 } if (buffer[i] == /buffer[i + 1] == *){ 以下是/**/注释行的内容 memcpy(pstr, p + i, 1);//拷贝当前字符 op = true;//设置注释行的类型,当前为/**/的类型 } if (buffer[i] == *buffer[i + 1] == /op == true){ 检测到注释行的内容结束 memcpy(pstr, p + i+1, 1);//拷贝当前字符 continue; } 输出结果 2.2、算法流程图 统计数字和字母数量的结果截图: 实验过程中遇到的问题解决办法与实验体会 在这次的实验中基本没遇到什么问题,只是c语言有点不熟练了 **************************源代码******************************* #includeiostream #includestring using namespace std; int main() { while(1){ char str[100]; cinstr; int k = 0; int j = 0; for(int i = 0;i strlen(str);i++){ if(str[i] = Astr[i] = Z|| str[i] = astr[i]=z){ j++; } if(str[i] =0str[i]=9){ k++; } } cout数字:kendl; cout字母:jendlendl; } return 0; } #includeiostream #includestring #includefstream using namespace std; int main() { char buffer[256]; bool op = false; //判断是否为/**/的注释 char* pstr = NULL; //记录注释内容 pstr = (char *)malloc(1024 * sizeof(char)); char* ptempstr = NULL; //记录pstr的首地址 ptempstr = (char *)malloc(1024 * sizeof(char)); ptempstr = pstr; ifstream fileopen; fileopen.open(d:\\com.txt); cout 文件内容如下: endl; while (!fileopen.eof()){ fileopen.

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档