| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> php >> fen xi PHP de similar_text han shu

fen xi PHP de similar_text han shu

2008-12-22 08:09:22 编辑來源:互联网 评论
 
 
 
本文为【分析PHP的similar_text函数】的拼音翻译版
  // bi jiao zi chuan , fan hui liang ge zi chuan di yi ge xiang tong zi fu de qu yu
  static void php_similar_str(const char *txt1, int len1, const char *txt2, int len2, int *pos1, int *pos2, int *max)
  {
  char *p, *q;
  char *end1 = (char *) txt1 + len1;
  char *end2 = (char *) txt2 + len2;
  int l;
  *max = 0;
  // bian li zi chuan
  for (p = (char *) txt1; p < end1; p++) {
  for (q = (char *) txt2; q < end2; q++) {
   for (l = 0; (p + l < end1) && (q + l < end2) && (p[l] == q[l]); l++);
   if (l > *max) {
   // bao cun xiang tong qu yu xin xi
   *max = l;
   *pos1 = p - txt1;
   *pos2 = q - txt2;
   }
  }
  }
  }
  // di gui han shu , bi jiao txt1 he txt2 de xiang tong zi fu shu liang
  static int php_similar_char(const char *txt1, int len1, const char *txt2, int len2)
  {
  int sum;
  int pos1, pos2, max;
  php_similar_str(txt1, len1, txt2, len2, &pos1, &pos2, &max);
  if ((sum = max)) {// zhe yang xie you shen me yi yi ?????!!!!!
  // di gui shang ci bu tong bu fen de qian bu
  if (pos1 && pos2) {
   sum += php_similar_char(txt1, pos1, txt2, pos2);
  }
  // di gui shang ci bu tong bu fen de hou bu
  if ((pos1 + max < len1) && (pos2 + max < len2)) {
   sum += php_similar_char(txt1 + pos1 + max, len1 - pos1 - max,
   txt2 + pos2 + max, len2 - pos2 - max);
  }
  }
  // fan hui ben ci bi jiao hou de xiang tong zi fu shu liang
  return sum;
  }
  //PHP han shu ben shen , yi dui hong , zuo le xie chuan zhuan huan he fan hui zhi huan suan , zhu gong neng you shang mian liang ge han shu zuo le 。
  PHP_FUNCTION(similar_text)
  {
  zval **t1, **t2, **percent;
  int ac = ZEND_NUM_ARGS();
  int sim;
  if (ac < 2 || ac > 3 || zend_get_parameters_ex(ac, &t1, &t2, &percent) == FAILURE) {
  WRONG_PARAM_COUNT;
  }
  convert_to_string_ex(t1);
  convert_to_string_ex(t2);
  if (ac > 2) {
  convert_to_double_ex(percent);
  }
  if (Z_STRLEN_PP(t1) + Z_STRLEN_PP(t2) == 0) {
  if (ac > 2) {
   Z_DVAL_PP(percent) = 0;
  }
  RETURN_LONG(0);
  }
  sim = php_similar_char(Z_STRVAL_PP(t1), Z_STRLEN_PP(t1), Z_STRVAL_PP(t2), Z_STRLEN_PP(t2));
  if (ac > 2) {
  Z_DVAL_PP(percent) = sim * 200.0 / (Z_STRLEN_PP(t1) + Z_STRLEN_PP(t2));
  }
  RETURN_LONG(sim);
  }
  suo you kan chu similar_text shi gen ju ASCII zuo bi jiao de , shi bu kao lv ci zu wen ti de 。
  ce shi le yi xia , jie guo ru xia :
  int main(int argc, char *argv[])
  {
  char *str1="weican wuxin";
  char *str2="wuxin weican";
  int pos1,pos2,max;
  php_similar_str(str1,strlen(str1),str2,strlen(str2),&pos1,&pos2,&max);
  printf("php_similar_str:%d,%d=%d\n",pos1,pos2,max);
  max=php_similar_char(str1,strlen(str1),str2,strlen(str2));
  printf("php_similar_char:%d\n",max);
  system("PAUSE");
  return 0;
  }
  php_similar_str:0,6=6
  php_similar_char:6
  char *str1="TCP xie yi tong xun gong zuo yuan a li ";
  char *str2="TCPa xie yi tong xun gong zuo yuan li ";
  php_similar_str:3,4=14
  php_similar_char:19【原文】【汉音对照
 
 
 
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
// bi jiao zi chuan , fan hui liang ge zi chuan di yi ge xiang tong zi fu de qu yu static void php_similar_str(const char *txt1, int len1, const char *txt2, int len2, int *pos1, int *pos2, int *max) { char *p, *q; char *end1 = (char *) txt1 + len1; char *end2 = (char *) txt2 + len2; int l; *max = 0; // bian li zi chuan for (p = (char *) txt1; p < end1; p++) { for (q = (char *) txt2; q < end2; q++) { for (l = 0; (p + l < end1) && (q + l < end2) && (p[l] == q[l]); l++); if (l > *max) { // bao cun xiang tong qu yu xin xi *max = l; *pos1 = p - txt1; *pos2 = q - txt2; } } } } // di gui han shu , bi jiao txt1 he txt2 de xiang tong zi fu shu liang static int php_similar_char(const char *txt1, int len1, const char *txt2, int len2) { int sum; int pos1, pos2, max; php_similar_str(txt1, len1, txt2, len2, &pos1, &pos2, &max); if ((sum = max)) {// zhe yang xie you shen me yi yi ?????!!!!! // di gui shang ci bu tong bu fen de qian bu if (pos1 && pos2) { sum += php_similar_char(txt1, pos1, txt2, pos2); } // di gui shang ci bu tong bu fen de hou bu if ((pos1 + max < len1) && (pos2 + max < len2)) { sum += php_similar_char(txt1 + pos1 + max, len1 - pos1 - max, txt2 + pos2 + max, len2 - pos2 - max); } } // fan hui ben ci bi jiao hou de xiang tong zi fu shu liang return sum; } //PHP han shu ben shen , yi dui hong , zuo le xie chuan zhuan huan he fan hui zhi huan suan , zhu gong neng you shang mian liang ge han shu zuo le 。 PHP_FUNCTION(similar_text) { zval **t1, **t2, **percent; int ac = ZEND_NUM_ARGS(); int sim; if (ac < 2 || ac > 3 || zend_get_parameters_ex(ac, &t1, &t2, &percent) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_string_ex(t1); convert_to_string_ex(t2); if (ac > 2) { convert_to_double_ex(percent); } if (Z_STRLEN_PP(t1) + Z_STRLEN_PP(t2) == 0) { if (ac > 2) { Z_DVAL_PP(percent) = 0; } RETURN_LONG(0); } sim = php_similar_char(Z_STRVAL_PP(t1), Z_STRLEN_PP(t1), Z_STRVAL_PP(t2), Z_STRLEN_PP(t2)); if (ac > 2) { Z_DVAL_PP(percent) = sim * 200.0 / (Z_STRLEN_PP(t1) + Z_STRLEN_PP(t2)); } RETURN_LONG(sim); } suo you kan chu similar_text shi gen ju ASCII zuo bi jiao de , shi bu kao lv ci zu wen ti de 。 ce shi le yi xia , jie guo ru xia : int main(int argc, char *argv[]) { char *str1="weican wuxin"; char *str2="wuxin weican"; int pos1,pos2,max; php_similar_str(str1,strlen(str1),str2,strlen(str2),&pos1,&pos2,&max); printf("php_similar_str:%d,%d=%d\n",pos1,pos2,max); max=php_similar_char(str1,strlen(str1),str2,strlen(str2)); printf("php_similar_char:%d\n",max); system("PAUSE"); return 0; } php_similar_str:0,6=6 php_similar_char:6 char *str1="TCP xie yi tong xun gong zuo yuan a li "; char *str2="TCPa xie yi tong xun gong zuo yuan li "; php_similar_str:3,4=14 php_similar_char:19
󰈣󰈤
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
华丽的模特拍摄(8)
华丽的模特拍摄(7)
华丽的模特拍摄(6)
华丽的模特拍摄(5)
八里沟
朝阳宫
天下峨眉 云上金顶
老家(四)
 
>>返回首页<<
 
 
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
 
©2005- 王朝网络 版权所有