c转java_C的函数转换成java

intfuzzy_compare(constchar*str1,constchar*str2){unsignedintblock_size1,block_size2;uint32_tscore=0;char*s1,*s2;char*s1_1,*s1_2,*s1_3;char*s2_1,*s2_2,*s2_3;if(NULL==str1||...

int fuzzy_compare(const char *str1, const char *str2)

{

unsigned int block_size1, block_size2;

uint32_t score = 0;

char *s1, *s2;

char *s1_1, *s1_2, *s1_3;

char *s2_1, *s2_2, *s2_3;

if (NULL == str1 || NULL == str2)

return -1;

if (sscanf(str1, "%u:", &block_size1) != 1 ||

sscanf(str2, "%u:", &block_size2) != 1) {

return -1;

}

if (block_size1 != block_size2 &&

block_size1 != block_size2*2 &&

block_size2 != block_size1*2) {

return 0;

}

str1 = strchr(str1, ':');

str2 = strchr(str2, ':');

if (!str1 || !str2) {

return -1;

}

s1 = eliminate_sequences(str1+1);

if (!s1)

return 0;

s2 = eliminate_sequences(str2+1);

if (!s2)

{

free(s1);

return 0;

}

s1_1 = s1;

s2_1 = s2;

s1_2 = strchr(s1, ':');

s2_2 = strchr(s2, ':');

if (!s1_2 || !s2_2) {

free(s1); free(s2);

return -1;

}

*s1_2 = 0;

s1_2++;

*s2_2 = 0;

s2_2++;

s1_3 = strchr(s1_2, ',');

s2_3 = strchr(s2_2, ',');

if (s1_3 != NULL)

*s1_3 = 0;

if (s2_3 != NULL)

*s2_3 = 0;

if (block_size1 == block_size2 && strlen(s1) == strlen(s2)) {

if (!strncmp(s1, s2, strlen(s1))) {

free (s1);

free (s2);

return 100;

}

}

if (block_size1 == block_size2) {

uint32_t score1, score2;

score1 = score_strings(s1_1, s2_1, block_size1);

score2 = score_strings(s1_2, s2_2, block_size1*2);

score = MAX(score1, score2);

}

else if (block_size1 == block_size2*2) {

score = score_strings(s1_1, s2_2, block_size1);

}

else {

score = score_strings(s1_2, s2_1, block_size2);

}

free(s1);

free(s2);

return (int)score;

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值