C语言问题,请帮忙解答一下,写出程序,再帮忙讲解一下,感激涕零~~~

文件mydoc.txt是一篇英文文档,编写分析此文档的c程序,将包含teacher或student关键词的段落单独摘录出来,存放到edu.txt文档中。... 文件mydoc.txt是一篇英文文档,编写分析此文档的c程序,将包含teacher或student关键词的段落单独摘录出来,存放到edu.txt文档中。 展开
 我来答
名很难记
推荐于2017-12-15 · 超过31用户采纳过TA的回答
知道答主
回答量:69
采纳率:100%
帮助的人:41.3万
展开全部
/*文件mydoc.txt是一篇英文文档,
编写分析此文档的c程序,
将包含teacher或student关键词的段落
单独摘录出来,存放到edu.txt文档中。*/
#include<stdio.h>
#include<string.h>//字符串操作用的头文件
#include<windows.h>//为了使用exit()退出程序函数
void main(){
 char st[]="student\0";
 char te[]="teacher\0";
 char mc[20]={0};//初始化字符串数组 (全部置为0)
 int sn=0,tn=0;//计数
 FILE *p1,*p2;//定义文件指针
 if((p1=fopen("C:\\Users\\Administrator\\Desktop\\mydoc.txt","r"))==NULL){
  printf("文件打开失败。");exit(-1);}
 if((p2=fopen("C:\\Users\\Administrator\\Desktop\\edu.txt","w"))==NULL){
  printf("文件打开失败。");exit(-1);}
 do{fgets(mc,8,p1);//读取8-1个有效字符保存到mc
 if(!strcmp(mc,st)){++sn;fputs(st,p2);fputc('\n',p2);printf("已找到");}
 else if(!strcmp(mc,te)){++tn;fputs(te,p2);fputc('\n',p2);printf("已找到");}
 else printf("寻找中");
 printf(":%d %d||%s\n",sn,tn,mc);
 }while(!feof(p1));
 fflush(p1);
 fclose(p1);fclose(p2);
 printf("读取完毕,共有%d个teachar,%d个student\n",sn,tn);
 printf("摘录文档edu.txt已存放至桌面!\n");
}
//测试用文档mydoc.txt:
/*sdsh
shsdhseh
hdfh
dfhrsh
dfhdfj
dfh
stu
dfj
student
dsgsd
h
teacher
sdgsdg
seg
ss
dsytu
fgjfgj
teacher
teacher
sgsdg
student
sdgdg
tae
teach
sdg
fdhdfdf
student*/
更多追问追答
追问
你好,如果是一段英文,如: I'm a student. I like playing football. 
my English teacher is very nice.
I like English.
输出含有student 的段落,要一段全部输出。而且,对于fgets(mc,8,p1); 这一句,不能确保读到的一定是student,这样怎么解决呢?
追答
使用fgetc()函数 一次获取一个字符保存到数组(设置得足够大),遇到空格或逗号或句号则暂停
并与teacher和student进行strcmp比较,循环到文件尾。最后输出结果
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式