私は何年もこれに固執してきましたが、この問題を解決する方法が思いつきません。したがって、用語のリストを含む配列があり、各用語は入力ファイルと比較され、一致する場合は「一致が見つかりました」という出力が表示されます...私が抱えている問題の1つは、 strncasecmp は、行の最初の n 文字のみを比較します。つまり、最後に到達するまで、毎回配列を左にシフトする必要がありました。
これは私がこれまでに思いついたものです...
while (fgets(line, 256, ifp) != NULL){
for (i = 0; i < numberTerms; i++){
len = strlen(term[i]);
for (lineStep = 0; lineStep < (strlen(line) - 1); lineStep++){
if (line[lineStep] == '\0')
break;
if (strncasecmp(line, term[i], len) == 0)
printf("Match found!\n");
for (j = 0; j < (strlen(line)-1); j++)
line[lineStep] = line[lineStep + 1];
}
}
}
これは「Match found!」のみを出力します。必要な 5 回ではなく 1 回です。私は何を間違っていますか?また、文字列を簡単に検索する方法があれば教えてください。