资源简介

C语言版文件相似度对比,文本对比 数据结构C语言大作业 采用递归矩阵对比,用了结构体

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 


#define  MAX_INT ( ( (unsigned int) (-1) ) >> 1)
#define  MIN_INT MAX_INT + 1


struct compareText {
int differenceStepValue;
wchar_t * text1;
wchar_t * text2;
};

int getLength( wchar_t  *str );


float similarityCalculate( wchar_t  *str1int pieceLength1 wchar_t  *str2 int pieceLength2char isShowMatrix);

int getMax( int num1 int num2 );


int getMin( int num1 int num2 int num3 );


void showMatrix( compareText **matrix wchar_t  *str1 int len1 wchar_t  *str2 int len2 );


wchar_t * getFileContent( char* path );


wchar_t * deleteOthers( wchar_t * str );


wchar_t * char2wchar( char* cp );


void del_chr( wchar_t *s wchar_t ch );

int setLogFile(char *result);

void toSimilarityCalculate(char *path1char *path2);

void toSimilarityCalculateMenu();

void toListLogMessage();

void menu();

int isFileExist(char *path);


typedef struct compareText compareText;

int main( void )
{
setlocale( LC_CTYPE “chs“ ); /* 设置中文运行环境 */
menu();
return(0);
}
/**
 *   总目录菜单
 */
void menu(){
int isClear = 1;
while(1){
if(isClear == 1){
system(“cls“);
}else{
printf(“\n“);
}
int choose = -1;
printf(“输入功能序号进行操作:\n“);
printf(“1.对比两个文件的相似度\n“);
printf(“2.查看历史对比记录\n“);
printf(“3.直接退出\n“);
printf(“请输入序号:“);
fflush(stdin);
scanf(“%d“&choose);
if(choose == 1){
system(“cls“);
isClear = 0;
toSimilarityCalculateMenu();
}else if(choose == 2){
system(“cls“);
isClear = 0;
toListLogMessage();
}else if(choose == 3){
isClear = 0;
break;
}else{
system(“cls“);
isClear = 0;
printf(“请输入正确的序号!\n“);
}


}
}
/**
 *   字符串相似度处理目录菜单
 */
void toSimilarityCalculateMenu(){
system(“cls“);
char choose;
char *path1 = (char*)malloc(sizeof(char) * 100);
char *path2 = (char*)malloc(sizeof(char) * 100);
printf(“请输入第一个文件的路径(目录下有测试文件text1.txt):“);
fflush(stdin);
scanf(“%s“path1);
while(isFileExist(path1) == 0){
printf(“文件不存在或不可读,请重新输入文件路径:“);
fflush(stdin);
scanf(“%s“path1);
}
printf(“请输入第二个文件的路径(目录下有测试文件text2.txt):“);
fflush(stdin);
scanf(“%s“path2);
while(isFileExist(path2) == 0){
printf(“文件不存在或不可读,请重新输入文件路径:“);
fflush(stdin);
scanf(“%s“path2);
}
printf(“\n是否开始进行相似度对比(Y/N):“);
fflush(stdin);
scanf(“%c“&choose);
while(1){
if(choose == ‘Y‘ || choose == ‘y‘){
toSimilarityCalculate(path1path2);
break;
}else if(choose == ‘N‘ || choose == ‘n‘){
break;
}else{
printf(“输入错误,请重新输入(Y/N):“);
fflush(stdin);
scanf(“%c“&choose);
continue;
}
}

}

/**
 *   相似度处理计算流程
 */
void toSimilarityCalculate(char *path1char *path2){
char choose = ‘n‘;
printf(“〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n“);
printf(“正在进行文件相似度对比...\n“);
Sleep(300);
printf(“正在获取第一个文件(%s)的内容...\n“path1);
Sleep(1000);
wchar_t

评论

共有 条评论