C语言计算字符串距离附代码

C语言计算字符串距离附代码

ID:6681967

大小:152.62 KB

页数:4页

发布时间:2023-01-02 10:51:54

C语言计算字符串距离附代码_第1页
C语言计算字符串距离附代码_第2页
C语言计算字符串距离附代码_第3页
C语言计算字符串距离附代码_第4页
资源描述:

2.计算字符串的距离2.1系统概述许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:(1)修改一个字符(如把“a”替换为“b”)。(2)增加一个字符(如把“abdd”变为“aebdd”)。(3)删除一个字符(如把“travelling”变为“traveling”)。比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g“的方式来达到目的。上面的两种方案,都仅需要一次操作。把这个操作所需要的次数定义为两个字符串的距离,给定任意两个字符串,你写出一个算法来计算出它们的距离。要求编写函数intstrDist(char*str1,char*str2)//str1与str2是输入的字符串,函数返回值为两者的距离。2.2系统框架结构和算法思想框架结构:①:一个主函数,一个子函数,在主函数中输入两个字符串,调用子函数进行两个字符串距离的判断。算法思想:②:将两个字符串存在数组中,在子函数的参数中运用指针穿数组的地址,子函数中,运用递归的方法,判断两个字符串之间的距离1,再返回值。2.3功能模块实现①:strDist(char*str1,char*str2)函数中先用strlen函数,判断两个指针的长度是否为0,如果有一个长度为0,则直接返回这两个长度之差的绝对值,即是两个字符串的距离;②:如果不是第一种情况,则往下,如果两个字符串的第一个字符相同,则运用递归返回,将函数参数赋予数组下一个元素的地址;③:传进来的字符串的第一个元素不再相同,再分别构建三个整型变量,为a1,a2,a3;然后运用递归给a1、a2、a3赋值;④:a1的值等于当前传进来的指针str1与指针str2+1的字符串的距离;⑤:a2的值等于当前传进来的指针str1+1与str2的字符串的距离;⑥:a3的值等于当前传进来的指针str1+1与str2+1的字符串的距离;,⑦:最后通过比较出三者中的最小值,然后加1返回,便是所要求的字符串距离。输出距离判断strDist函数main函数进行递归2.4系统测试2.5系统设计总结通过学习字符串间的距离的计算,我对递归的算法也更加的熟悉,能够更加熟练、合理地运用;并且对宏定义的方法也有了更加透彻地领会。代码如下:#include,#include#include#defineMIN(x,y)((x)<(y)?(x):(y))intstrDist(char*str1,char*str2){if(strlen(str1)==0||strlen(str2)==0){returnabs(strlen(str1)-strlen(str2));}if(str1[0]==str2[0]){returnstrDist(str1+1,str2+1);}else{inta1,a2,a3;a1=strDist(str1,str2+1);a2=strDist(str1+1,str2);a3=strDist(str1+1,str2+1);returnMIN(MIN(a1,a2),a3)+1;}}intmain(){chara[100];charb[100];printf("请输入第一个字符串:

1");gets(a);printf("请输入第二个字符串:

2");gets(b);printf("字符串间的距离为:%d

3",strDist(a,b));,return0;}

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1、本文档共4页,下载后即可获取全部内容。
2、此文档《C语言计算字符串距离附代码》由用户(槐*秋起)提供并上传付费之前 请先通过免费阅读内容等途径辨别内容,本站所有文档下载所得的收益全部归上传人(卖家)所有:如有侵权或不适当内容,请进行举报或申诉。
3、所有的PPT和DOC文档都被视为“模板”允许上传人保留音节日灵结构的情况下删减部份的内容,下裁前须认直查看,确认无误后再购买。
4、万象文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护外理,无法对各卖家所售文档的直实性,完整性,准确性以及专业性等问题提供审核和保证,请谨慎购买。
5、本站文档的总页数,文档格式和文档大小以系统显示为准(内容中显示页数不一定正确),网站客服只以系统显示页数,文件格式,文档大小作为仲裁依据。