Поиск совпадения в массиве с использованием strcmp - PullRequest
0 голосов
/ 18 сентября 2011

я пытаюсь сравнить слова массива с помощью strcmp. Я пытаюсь заставить каждое слово, которое появляется в массиве более одного раза, распечатать только один раз, поэтому я могу определить количество уникальных слов. Я знаю, что он делает неправильнонапример, когда он ищет массив, он печатает каждую найденную копию, например, если слово «the» находится в массиве 4 раза, он будет печатать «3», а когда string1 перейдет в следующее место, где »', он будет распечатан 2 раза и т. д.

Ответы [ 2 ]

2 голосов
/ 18 сентября 2011

Преобразуйте свои массивы символов в std::string и вместо их печати поместите их в std::set.Затем напечатайте каждый элемент в наборе.

1 голос
/ 18 сентября 2011

хорошо, что вы добавили объявления,

теперь из того, что выглядит, кажется, что слова [] [] являются избыточными и усложняют ненужные вещи.если вы заинтересованы только в получении уникальных слов, вместо этого просто обработайте то, что возвращается из strtrok, создав словарь с найденными словами

, словарь может быть чем-то таким же простым, как массив максимального размера, содержащий уникальные слова, ииндекс, который начинается с 0, когда массив пуст, всякий раз, когда strtok возвращает слово, проходит по массиву и ищет слово, используя ваш strcmp, если оно не существует, добавьте его в конец массива, затем увеличьте, а затем индексируйте.

а боб твой дядя :) 1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...