c语言计算汉明距离

2021-04-12  本文已影响0人  一路向后

1.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char xor(char a, char b)
{
    if(a == b)
    {
        return 0;
    }

    return 1;
}

int hanming(char *a, char *b, char *c)
{
    int d = 0;
    int u;
    int i;

    for(i=0; a[i]!=0x00&&b[i]!=0x00; i++)
    {
        c[i] = xor(a[i], b[i]);
    }

    if(a[i] != 0x00)
    {
        while(a[i] != 0x00)
        {
            c[i] = 1;
            i++;
        }
    }
    else if(b[i] != 0x00)
    {
        while(b[i] != 0x00)
        {
            c[i] = 1;
            i++;
        }
    }

    u = i;

    for(i=0; i<u; i++)
    {
        c[i] && d++;
    }

    return d;
}

int main()
{
    char a[1024];
    char b[1024];
    char c[1024];

    scanf("%s", a);
    scanf("%s", b);

    printf("%d\n", hanming(a, b, c));

    return 0;
}

2.编译源码

$ gcc -o example examle.c -std=c89

3.运行及其结果

$ ./example
coast
roast
1
上一篇 下一篇

猜你喜欢

热点阅读