gpt4 book ai didi

c++ - 比较两个不同数组中的字符值

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:32 25 4
gpt4 key购买 nike

我必须比较两个数组,每个数组都有 444 个字符,如果它们完全相同,则输出它们相同。如果不是,则程序将继续,直到完成所有数组的相互比较。

到目前为止,这是我的代码。我已经更改了几次,但我要么让程序不向 outFile 输出任何内容(说没有一个是相同的,我发现这是错误的,因为我认为一个是相同的,或者教授不会要求我们这样做)或者说每条基因链都是相同的:

#include iostream
#include string
#include fstream
using namespace std;

ifstream inFile;
ofstream outFile;


bool SameGene(char gene1[], char gene2[], int size)

{
for(int i=0, j=0;i<444 && j<444;i++,j++)
if(gene1[i] != gene2[j])
return false;

return true;
}


int main()
{

inFile.open("dna.txt");
outFile.open("DNAanalysis.txt.");

char gene1A[444], gene2A[444];

char gene1B[444], gene2B[444];

char gene1C[444], gene2C[444];

char gene1D[444], gene2D[444];

inFile.read(gene1A, 444);
inFile.read(gene2A, 444);
inFile.read(gene1B, 444);
inFile.read(gene2B, 444);
inFile.read(gene1C, 444);
inFile.read(gene2C, 444);
inFile.read(gene1D, 444);
inFile.read(gene2D, 444);

if(SameGene(gene1A, gene1B, 444) || SameGene(gene2A, gene2B, 444))
outFile << "Person A and Person B are related." << endl;
if(SameGene(gene1A, gene1C, 444) || SameGene(gene2A, gene2C, 444))
outFile << "Person A and Person C are related." << endl;
if(SameGene(gene1A, gene1D, 444) || SameGene(gene2A, gene2D, 444))
outFile << "Person A and Person D are related." << endl;
if(SameGene(gene1B, gene1C, 444) || SameGene(gene2B, gene2C, 444))
outFile << "Person B and Person C are related." << endl;
if(SameGene(gene1B, gene1D, 444) || SameGene(gene2B, gene2D, 444))
outFile << "Person B and Person D are related." << endl;
if(SameGene(gene1C, gene1D, 444) || SameGene(gene2C, gene2D, 444))
outFile << "Person C and Person D are related." << endl;

return 0;
}

最佳答案

您可以使用 std::equal比较两个数组:

#include <algorithm>

bool same = std::equal(gene1, gene1+444, gene2);

这里你必须确保 gene2 至少和 gene1 一样长。

如果您的问题出在其他地方,那么您应该在问题的标题中明确说明并关注真正的问题。

关于c++ - 比较两个不同数组中的字符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13554138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com