Найти самое часто встречающееся слово в тексте. Ввод слов в динамический массив. Как сделать без map?
Задача: Найти самое часто встречающееся слово в тексте, при подсчёте игнорируя слова из первой строки.
Есть идея, что надо занести слова из первой строки в массив, чтобы, например, words[n][i] - n-ное слово строки. Далее, занести все остальные слова, не совпадающие ни с одним из первого массива, во второй такой же массив, и уже в нём подсчитать самое часто встречающееся слово.
Честно, буду рад любым идеям и коду, потому что плохо представляю, как это сделать без map и на чистом си.
Для правильного вопроса надо знать половину ответа
как это сделать без map и на чистом си
Это же очевидно, надо написать свою реализацию map на чистом C.
А по алгоритму - быстрее может оказаться сначала найти частоты всех слов, а уже потом исключить слова из первой строки.
Найти/сделать ассоциативный контейнер. Думаю, реализаций деревьев бинарного поиска на С предостаточно. Ещё можно простую хэш-таблицу на коленке сделать, наверно это даже проще. Просто с обычным линейным поиском по массиву у вас очень долго программа работать будет.
Если реальный проект, а не просто задача для саморазвития, то однозначно искать готовые реализации.
Обратите внимание на функцию char * strstr( const char * string1, const char * string2 ); тут
Никаких сложностей не нужно. Стандартная функция си - описана в string.h
Искомыми подстроками будут слова из 1-й строки и тд.