c++ - 汉明距离 : Incorrect Count

标签 c++ arrays function char hamming-distance

我正在尝试创建一个函数来计算两个字符串之间的汉明距离。当我调用这个函数时,它应该告诉我两个字符串之间不匹配的字符数。

我的输出不正确。我不断得到随机数结果。下面是我的代码:

using namespace std;

// function to calculate Hamming distance
int HammingDistance(char seq1[], char seq2[])
{
    int i = 0, count = 0;
    while (seq1[i] != ' ')
    {
        if (seq1[i] != seq2[i])
            count++;
        i++;
    }
    return count;
}


int main()
{
    char seq1[] = "doga";
    char seq2[] = "dogb";

    cout << HammingDistance(seq1, seq2) << endl;        

    return 0;
}

我的输出中不断得到随机数结果,例如 99 或 207。

在这个例子中,我应该得到 1。

非常感谢任何关于我哪里出错的帮助!谢谢。

最佳答案

您应该使用 \0 来测试字符串的结尾,而不是 (空格)。

那么你的 while 应该是:while (seq1[i] != '\0')

关于c++ - 汉明距离 : Incorrect Count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50751225/

相关文章:

javascript - 无法检查过滤器内的空验证

JavaScript 函数难度

python - 为什么方法这么慢?

c++ - 在循环引用的上下文中处理循环包含

c++ - 使用 const_iterator 如何编译出更高效的程序?

C++ 从按顺序执行的其他 constexpr lambda 创建 lambda 不能是 constexpr

c++ - Boost ini_parser - 单例 DLL 问题

java - 如何仅将 1 个元素传递给 ArrayAdapter 并确保它只显示唯一的项目

javascript - 如何将无限数量的参数传递给 console.log 调用?

javascript - 从数组中删除空字符串(正则表达式) - Javascript