迪奥水动力旧版面霜:大侠帮我啊!!! 急!!

来源:百度文库 编辑:高考问答 时间:2024/05/01 11:57:28
题目如下
对存储在chapter.dat文件下的 英文文章进行下面的操作
统计各个单词的数量并将单词排序
结果输入到out.dat文件中 格式如下
单词名 数量
判断单词是否在该文章中,若存在指出再文章中的出现次数~
我做了查找 不会排序的
#include<stdio.h>
#include<string.h>
#include<conio.h>
void normal () /*功能菜单*/
{
printf("\n0***0***文字查找***0\n\n");
printf("打开我的文档(myfile).\n\n");
printf("输入查找单词.\n\n");
printf("显示全文.\n\n");
printf("刷新屏幕.\n\n");
printf("退出.\n\n");
printf("0***0***0\n");
printf("请输入选项按回车确认:");
}
void find(FILE *fp) /*查找单词*/
{
int num=0,i=0,a,word=0,j=0,k=0;
char string[100],b[100], *str,d[100],ch,c;
printf("请输入想要查找的单词按回车确认: ");
scanf("%s",string); /*输入查找单词*/
a=strlen(string); /*测量输入单词的长度*/
ch=fgetc(fp); /*将文档中的内容提出*/
while(ch!=EOF) /*将首地址赋给一个指针*/
{
b[i++]=ch;
ch=fgetc(fp);
}
b[i]='\0';
rewind(fp);
for(i=0;(c=b[i])!='\0';i++) /*单词判断*/
if(c==' ')word=0;
else if(word==0) /*以单词前是否为空判断单词开头*/
{
str=&b[i];
for(j=0;j<a;j++)
d[j]=str[j];
d[j]='\0';
word=1;
if(b[i+a]>='a'&&b[i+a]<='z') ;
else if(strcmp(d,string)==0)num++; /*比较两个单词,相同则加1*/
}
rewind(fp);
printf(" 有%d个单词%s在文档中.\n",num,string);
}
void show (FILE* fp)
{
char ch;
printf(" \n!!!!!!!!!!!!显示全文 !!!!!!!!!!!!\n");
printf(" ");
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch); /*输出文章内容*/
ch=fgetc(fp);
}
printf(" \n!!!!!!显示全文 !!!!!\n");
printf("\n");
rewind(fp);
}

void main() /*主函数*/
{
FILE *fp;
int a,word=0,num=0,i;
char ch;
void clrscr(); /*清屏*/
printf(" \n 注意:请先在D盘中建立chapter.dat文档,并输入想要查找文章,并保存.\n 然后按回车,进入后按提示进行操作. \n");
scanf("%c",&ch);
normal(); /*调用提示函数*/

for(i=0;i<5;i++) /*单词判断*/
{
scanf("%d",&a); /*输入选项*/
switch(a) /*判断选项*/

{
case 1:if((fp=fopen("D:\\myfile.txt","r"))==NULL)
printf("没有单词 \n");
else
{
printf("文档已打开 \n");
printf("请输入选项按回车确认: :");
}
break;
case 2:find(fp);
printf("请输入选项按回车确认 :");
break; /*查找单词*/
case 3:show(fp);
normal();
break; /*显示全文*/
case 4:clrscr();
normal();
break; /*刷新*/
case 5:break; /*退出*/
default:printf("输入错误请重新选择 :");
}
if(a==5)
break;
}
fclose(fp);
}


void clrscr()
{
clrscr();
}
把你的这个声明到main函数外边

你可以参考下用strcmp(str1,str2)这个函数!