単語とその他のいくつかの情報を含む構造体を保持する LinkedList 実装があります。LinkedList には、単語がリスト内の構造体の 1 つに既に含まれているかどうかを確認する関数があります。問題は、これが毎回 0 を返すことです。これはなぜですか?
if(strcmp(ll->value->word, word))
これは完全に正常にコンパイルされ、この関数のすべての側面がステートメント以外にも機能します。
編集: 申し訳ありませんが、! を追加するのを忘れていました。
int llContains(LinkedList* ll, char* word){
LinkedList* nn= ll;
if(nn != NULL){
for(int i=0; nn != NULL; i++){
if(!strcmp(ll->value->word, word)){
return i;
}
nn = nn->next;
}
} else {
return -1;
}
}