word文档查重算法C语言代码
想用C语言写个程序,可以实现论文查重功能,输出论文的重复率,求大神指教!
程序代码:
/*检查论文重复率*/ #include<stdio.h> #include<stdlib.h> FILE *fp1,*fp2; void fun_open()//初始化事件 { /* char road_1[100],road_2[100]; pirntf("请输入论文1路径\n"); scnaf("%[^\n]%*c",road_1); pirntf("请输入论文2路径\n"); scnaf("%[^\n]%*c",road_2); if ((fp1=fopen(road_1,"r"))==NULL) { printf("无法打开此文件\n"); exit(0); } if ((fp2=fopen(road_2,"r"))==NULL) { printf("无法打开此文件\n"); exit(0); } ---这里提供了自行输入路径格式的方式*/ if ((fp1=fopen("D:\\个人管理\\编程\\文本\\读写文件\\读写.txt","r"))==NULL)//路径和格式自己改~当然 { printf("无法打开此文件\n"); exit(0); } if ((fp2=fopen("D:\\个人管理\\编程\\文本\\读写文件\\读写2.txt","r"))==NULL)//路径和格式自己改 { printf("无法打开此文件\n"); exit(0); } } void load()//输出两篇论文 { char ch1,ch2; printf("两篇论文输出如下\n\n论文1:\n\n"); while (!feof(fp1)) { ch1=fgetc(fp1); putchar(ch1); } putchar(10); printf("\n论文2\n\n"); while (!feof(fp2)) { ch2=fgetc(fp2); putchar(ch2); } putchar(10); } void judge()//判断 { char ch1,ch2; double same=0.0,dif=0.0; while (!feof(fp1)||!feof(fp2)) { while((ch1=fgetc(fp1))==' ');//防止空格影响~ while((ch2=fgetc(fp2))==' '); if (ch1==ch2)same++; else dif++; } printf("\n两篇论文的重复率为%%%.2f\n",same/(same+dif)*100); } void fun_rewind(FILE *fp1,FILE *fp2) { rewind(fp1); rewind(fp2); } int main() { fun_open(); load(); fun_rewind(fp1,fp2); judge(); fclose(fp1); fclose(fp2); return 0; }