簡體   English   中英

使用strcmp比較結構數組中的兩個元素會返回錯誤的值

[英]Using strcmp to compare two elements in an array of structures returns incorrect value

我正在嘗試使用strcmp與存儲在稱為索引的結構數組中的字符串進行比較。 該索引包含一個名為webpage的字符串和一個名為rank的int。 想法是比較兩個索引,並創建第三個索引,其中包含前兩個索引之間相同的網頁及其各自等級的總和。

問題是,當我使用for循環查找索引之間相似頁面的數量時,它始終返回7。它應該僅返回4。我是否錯誤地使用了此函數?

ins 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)
---------------------------------------^----------------

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM