@图灵不吃苹果
C语言文本文档单词查询
单词再文本文档中出现了几次
第一次出现在第几行 是第几个单词
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 30
int main()
{
FILE *file=fopen("file.txt","w");
printf("请输入内容:以@为结尾:"); //输入内容
char n;
int lie=0,flag=0,liecount=0;
int hang=1;
n=getchar(); //从键盘读入 直到输入回车才从流中取一个字符 等待字符读取完才停止
while(n!='@')
{
fputc(n,file);
n=getchar();
}
char mword[max];
printf("请输入要查询的单词:\t"); //输入查询单词
scanf("%s",mword);
int leng;
leng=strlen(mword);
printf("\n字符串的长度为:%d\n",leng);
fclose(file);
file=fopen("file.txt","r"); //读取单词出现次数
int count=0;
int i=0;
char ch;
char string[max];
ch=fgetc(file);
while(!feof(file)) //站在光标读取的位置上,光标读取后无字符就停止 有字符返回0 无字符返回非零
{
if((ch<='Z'&&ch>='A')||(ch<='z'&&ch>='a'))
{
string[i]=ch;
i++;
ch=fgetc(file); //读取一个字符 光标后移
if(flag==0)
{
flag=1;
lie++;
liecount=lie; //liecount用来记住一行的最后一个单词
}
}
else
{
if(ch=='\n')
{
hang++;
liecount=lie;
lie=0;
}
string[i]='\0';
flag=0;
if(strcmp(string,mword)==0)
{count++;
if(count==1)
{
printf("在第%d行\n",hang);
printf("是第%d个单词\n",liecount);
}
i=0;
ch=fgetc(file);
continue;
}
else
{i=0;
ch=fgetc(file);
continue;
}
}
}
fclose(file);
printf("出现%d次\n",count);
return 0;
}
@2019/11/20