《汇编语言上机实验》
实验报告书
专业班级 学 号 姓 名 指导教师
计算机科学与技术074班
079074120 任胜强 阮越
安徽工业大学 计算机学院
1
实验一 将一个一维的字符串转换成二维的字符串
一.实验源代码: /*程序名:parse.c
一个一维的字符串化为二维的字符串
思路:1>输入时,用循环方式输入,遇到换行符时结束 2>处理时,每遇到一个空格或者是\时换成一个\\0 3>将每一个字符串的首字符指针付给指针变量*/ #include void main(){ char buf[1024];/*保存字符串的空间*/ char *temp=buf;/*临时指针*/ char *pointer[64];/*保存最后结果的变量*/ int n,i; char c;/*接受输入的临时变量*/ printf(\"Please input the string:\\n\"); while((c=fgetc(stdin))!='\\n') *temp++=c; *(temp++)='\\0'; *temp='\\0';/*多加一个\\0的作用是为了循环的需要*/ temp=buf; n=0; while(*temp != '\\0'){ pointer[n++] = temp; while(*temp != ' '&&*temp != '\'&&*temp !='\\0')temp++; *(temp++)='\\0';/*找到之后*/ while(*temp == ' ') temp++;/*除去多余的空格*/ } printf(\"After parse:\\n\"); for(i=0;i 2 实验二 实现GREP命令 一. 实验源代码 /*程序名:grep.c 该程序的作用是在一个文件中找到和用户输入的字符串相同的字符行,并打印出来 思路:首先打开一个文件,然后进行一个循环,每次读出一行数据,对这行数据进行判断,如果找到该字符串就打印出 这一行数据,否则再到下一行进行判断,知道文件结束*/ #include int Match(char *s1,char *s2) {/*采用BF算法进行匹配,成功返回1,否则返回0*/ int l1,l2; int i,j; l1 = strlen(s1); l2 = strlen(s2); for(i=0;i } void main(int args,char *argv[]) {/*argv参数用来传递要查找的字符串和目标文件*/ FILE *fp; char buf[1024]; int i; if((fp=fopen(argv[2],\"r\"))==NULL) { printf(\"file error\\n\"); return ; } i=0; while(!feof(fp)) { i++; fgets(buf,1024,fp); if(Match(buf,argv[1])) { printf(\"%d line:%s\ } } } 二. 实验运行结果: 4 因篇幅问题不能全部显示,请点此查看更多更全内容