我试图使用strcmp
与存储在名为index的结构数组中的字符串进行比较。这个索引包含一个名为webpage的字符串和一个名为rank的int。其思想是比较这两个索引,并创建第三个索引,其中包含前两个索引之间相同的网页以及它们各自的排名之和。
问题是,当我使用for循环查找索引之间的相似页数时,它总是返回7。它应该只返回4。我是不是不正确地使用了这个功能?
int thesame=0;
for(i = 0; i < 8; i++) {
for(j = 0; j < 7; j++) {
if(strcmp(hotels[i].webpage,seattle[i].webpage) == 0) {
thesame++;
}
}
}
printf("%d\n", thesame);
return 0;
我也知道我有很多长度的硬编码值,这不是一个好的编码实践。我计划在我改变这个之前让程序运行。
最佳答案
if (strcmp (hotels[i].webpage, seattle[i].webpage) == 0)
您正在使用索引
i
两次。我想你想要的是:if (strcmp (hotels[i].webpage, seattle[j].webpage) == 0)
---------------------------------------^----------------
关于c - 使用strcmp比较结构数组中的两个元素会返回错误的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15095894/