2013-11-16 3 views
0

У меня есть домашнее задание в моем классе программирования C, в котором мне требуется, чтобы программа открывала текстовый файл, обрабатывала каждое слово отдельно и предполагала, что каждое слово разделено некоторым пробелом и что там не являются многострочными словами или словами, которые содержат дефис, а затем сравнивают каждое из слов с файлом словаря, чтобы узнать, являются ли они правильными английскими словами. После того, как он проверил, ему нужно вывести то, что написано с ошибками, в их правильной форме. Я не ищу, чтобы кто-то сделал это целиком для меня, но, скорее, мне хотелось бы узнать, с чего начать. Благодаря!C: String Spell Checker Guidance

ответ

2

Трудно сказать, с чего начать, не зная, насколько вы знаете. Вы знаете, как открыть текстовый файл и прочитать данные из него? Вы знаете, как хранить данные в структуре данных, например массиве? У вас есть точное описание проблемы?

«Вывести, что слова с ошибками, в их правильной форме» немного расплывчаты; невозможно вообще сказать, какое слово вы имели в виду, если слово написано неправильно, вместо этого вы можете предлагать только предложения, близкие к данному слову. Ваш преподаватель упомянул, какую метрику расстояния вы должны использовать для поиска слов, близких к текстам с ошибками? Разговаривали ли они о том, какие структуры данных вы должны использовать?

Как правило, лучший способ начать - это просто начать, а затем уточнить программу, когда вы идете. Сначала вы можете просто начать чтение во входном файле, разбить его на слова и затем распечатать эти слова. Это позволяет проверить, что ваша способность читать файл и разбить его на слова работает, не беспокоясь о других частях.

Затем добавьте что-то, что читается в словаре. Вероятно, он должен добавить каждую запись в массив. Вы знаете, если словарь сначала сортируется? Если это так, это поможет позже; если нет, вы, вероятно, захотите отсортировать свой массив после его чтения (или сохранить его отсортированным по мере добавления новых элементов).

Затем измените свой код так, чтобы часть, которая читается во входном файле, просматривает массив словаря, чтобы увидеть, есть ли в нем слово. Если да, это правильно написано. Если нет, вы можете добавить его в выходной массив или просто распечатать его немедленно. Вы можете начать, просто повторяя каждый элемент словаря и сравнивая текущее слово с ним. Когда у вас будет такая работа, было бы более эффективно выполнять двоичный поиск словаря, а не сравнивать слова один за другим; но общее правило заключается в том, чтобы заставить его работать первым, а затем сделать его более эффективным.

Теперь у вас есть что-то, что находит все слова с ошибками. Последний шаг - предложить предложения по исправлениям. Это немного сложнее, и есть много возможных способов сделать это. Я бы попросил вашего инструктора, как они предназначены для вас, потому что это не совсем вводная проблема. Но если вы хотите получить некоторые предложения, см. this answer for a question about how to implement a spelling checker.

0

один Google текстового формата словарь TXT, проверить эту тему: Where can I download english dictionary database in a text format? 2 сканирования открыть текстовый файл, который имеет свои слова, прочитал первое слово создать функцию, которая имеет в качестве параметра строки (массив char), которые берут слово, считанное из txt, и сопоставляют его с каждым словом в словаре, пока не найдут совпадение или конец файла

Смежные вопросы