⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 字符串.cpp

📁 数据结构试验
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 2000
#define MAXINT 1000000
int Compute_Distance(char str1,char str2)
{
	return (int)str1 > (int)str2 ? (str1-str2):(str2-str1);
}
int Compare_str(char *str1,char *str2,int k)
{
	int len1,len2,i,j,temp;
	int **val;
	len1=strlen(str1);
	len2=strlen(str2);
	val=new int * [len1+1];
	for(i=0;i<len1+1;i++)
		val[i]=new int[len2+1];
	val[0][0]=0;
	for(i=0;i<=len1;i++)
		for(j=0;j<=len2;j++)
			if(i+j)
			{
				val[i][j]=MAXINT;
				if((i*j)&&(temp=val[i-1][j-1]+Compute_Distance(str1[i-1],str2[j-1]))<val[i][j])
					val[i][j]=temp;
				if(i&&(temp=val[i-1][j]+k)<val[i][j])
					val[i][j]=temp;
				if(j&&(temp=val[i][j-1]+k)<val[i][j])
					val[i][j]=temp;
			}
	return val[len1][len2];
}
void main()
{
	FILE *fp,*fw;
	char *str1,*str2;
	int k;
    if((fp=fopen("input.txt","r"))==NULL)
	{ 
	printf("Cann't open this file!\n");
	exit(0);
	}
	str1=new char[MAXLEN];
	str2=new char[MAXLEN];
	printf("第一个字符串为:");
    fgets(str1,MAXLEN,fp);
	puts (str1); 
	printf("第二个字符串为:");
	fgets(str2,MAXLEN,fp);
	puts (str2); 
    printf("空格与其它字符的距离为:"); 
	fscanf(fp,"%d",&k);
    printf("%d\n",k);
	printf("其扩展距离: ");
	printf("%d",Compare_str(str1,str2,k));
	printf("\n");
	fw=fopen("output.txt","w");
	fprintf(fw,"%d\n",Compare_str(str1,str2,k));
	printf("\n");
	printf("实验结果已写入到文件output.txt中,请查收!");
	printf("\n");
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -