Я читаю несколько строк из файла и пытаюсь напечатать каждую строку, содержащую определенный набор ключевых слов. Прямо сейчас мой код просто ищет первое вхождение ключевого слова в строке, если он его найдет, он напечатает это ключевое слово и эту строку с номером строки. Но я пытаюсь сделать так, чтобы, если строка содержала более одного вхождения ключевого слова, в печатном выводе рядом с номером строки присутствовал символ звездочки. Я перепробовал много разных подходов, и ничего не работает. Вот мой код:
for(i = 0; i < wordCount_keyword; i++) {
for(j = 0; j <= lineCount; j++) {
if(strstr(inputLines[j], keywords[i]) != NULL) {
printf("%-*s %s (%d)\n", max_length + 1, keywords_upper[i], inputLines[j], j+1);
}
}
}
Вот мой текущий вывод:
CAT the fish a dog cat dog rabbit (1)
CAT the fish and cat (2)
DOG the fish a dog cat dog rabbit (1)
ELEPHANT a rabbit or elephant (3)
FISH the fish a dog cat dog rabbit (1)
FISH the fish and cat (2)
RABBIT the fish a dog cat dog rabbit (1)
RABBIT a rabbit or elephant (3)
Вот идеально правильный вывод, к которому я стремлюсь:
CAT the fish a dog cat dog rabbit (1)
CAT the fish and cat (2)
DOG the fish a dog cat dog rabbit (1*)
ELEPHANT a rabbit or elephant (3)
FISH the fish a dog cat dog rabbit (1)
FISH the fish and cat (2)
RABBIT the fish a dog cat dog rabbit (1)
RABBIT a rabbit or elephant (3)
Обратите внимание на разницу будучи звездой рядом с цифрой 1 в конце третьей строки. Какой правильный способ сделать это?