📄 invertedfile.c
字号:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
struct Ttree
{
char data[20];
int adress;
int length;
struct Ttree *lchild;
struct Ttree *rchild;
}Ttree;
struct Ttree *rt,*ff,*f,*pp;
struct Ttree * createTtree(struct Ttree *root,FILE *fp){
int i=0,t=0,addres=0;
struct Ttree *p,*q;
char ch;
p=(struct Ttree *)malloc(sizeof(Ttree));
p->data[0]='\0';
if(fp==NULL)
{
printf("\nCannot open file strike any key exit!");
return NULL;
}
ch=fgetc(fp);
while((ch!=EOF)&&(t==0))
{ if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
if(ch<='Z') ch=ch+32;
p->data[i]=ch;
i++;
ch=fgetc(fp);
}
else{
if(p->data[0]=='\0'){ch=fgetc(fp);addres++;continue;}
p->length=i;
p->data[i]='\0';
p->adress=addres;
addres=addres+i+1;
i=0;
t=1;
p->lchild=NULL;
p->rchild=NULL;
root=p;
ch=fgetc(fp);
}
}
q=(struct Ttree*)malloc(sizeof(Ttree));
q->data[0]='\0' ;
while(ch!=EOF){
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
if(ch<='Z') ch=ch+32;
q->data[i]=ch;
i++;
ch=fgetc(fp);
}
else {
if(q->data[0]=='\0'){ch=fgetc(fp);addres++;continue;}
q->data[i]='\0';
q->length=i;
q->adress=addres;
addres=addres+i+1;
i=0;
q->lchild=NULL;
q->rchild=NULL;
if(p==NULL)p=root;
ch=fgetc(fp);
while(p!=NULL)
{
if(strcmp(q->data,p->data)==0){
if(p->rchild==NULL)
{p->rchild=q;
p=NULL;}
else
p=p->rchild;
}
else{
if(p->lchild==NULL)
{p->lchild=q;
p=NULL;}
else
p=p->lchild;
}
}
q=(struct Ttree*)malloc(sizeof(Ttree));
q->data[0]='\0';
} /*else*/
}/*while*/
return root;
}
struct Ttree* search(struct Ttree *root,char ch[]){
while(root!=NULL){
/* printf("%s",root->data);*/
if(strcmp(root->data,ch)==0)return root;
else root=root->lchild;}
return NULL;}
char ch;
char a[20];
int i=0,address=0,n;
void main(){
FILE *fp;
fp=fopen("d:\\p1.txt","r");
rt=createTtree(f,fp);
printf("请输入你要查询的单词\n");
ch=getchar();
while(ch!='\n'&&i<19){
if(ch>='A'&&ch<='Z') ch=ch+32;
a[i]=ch;
ch=getchar();
i++;}
a[i]='\0';
ff=search(rt,a);
if(ff==NULL)printf("该文档中没有你要找的单词");
else {
fseek(fp,0,0);
ch=fgetc(fp);
while(ch!=EOF){
if(ff->adress==address){
for(i=0;i<=ff->length;i++){
textcolor(RED);
cprintf("%c",ch);
ch=fgetc(fp);
address++; }
ff=ff->rchild;
}
printf("%c",ch);
ch=fgetc(fp);
address++;
}
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -