我的C编程课中有一个家庭作业,要求我让程序打开一个文本文件,分别处理每个单词,并假设每个单词被一些空格分隔,并且没有多行单词或者包含连字符的单词,然后将每个单词与字典文件进行比较,看看它们是否是有效的英语单词。在检查之后,它需要以正确的形式输出拼写错误的单词。我不是在寻找一个完全为我做这件事的人,而是我想要从哪里开始做一些指导。谢谢!
答案 0 :(得分:2)
如果不知道你知道多少,很难告诉你从哪里开始。你知道如何打开文本文件,并从中读取数据吗?您知道如何在数据结构中存储数据吗?你有问题的确切描述吗?
“以错误的形式输出拼写错误的单词”有点模糊;一般来说,如果一个单词拼写错误,你不可能说出你的意思,而只能提供接近给定单词的建议。您的导师是否曾提到您应该使用哪种距离指标来查找与拼写错误的单词相近的单词?他们是否谈到了您应该使用哪种数据结构?
通常,最好的开始方式是简单地开始,然后随时优化程序。您可以先读入输入文件,将其分解为单词,然后打印出来。这可以让你测试你读取文件并将其分解为单词的能力,而不必担心其他部分。
然后添加在字典中读取的内容。它应该可以将每个条目添加到数组中。你知道字典是否按照开头排序?如果是这样,那将有助于以后;如果没有,您可能希望在读取数组后对其进行排序(或在添加新元素时对其进行排序)。
然后更改您的代码,以便读入输入文件的部分查看字典数组以查看是否有单词。如果是,它拼写正确。如果没有,您可以将其添加到输出数组,或立即打印出来。您可以从遍历字典的每个元素并将当前单词与其进行比较开始。一旦你有了这个工作,对字典进行二进制搜索会更有效率,而不是逐个比较单词;但一般的经验法则是让它先工作,然后提高效率。
现在你有了找到所有拼错单词的东西。最后一步是提供更正建议。这有点困难,有很多可能的方法可以做到这一点。我会向你的老师询问他们对你这么做的意义,因为这不是一个介绍性的问题。但是,如果您需要一些建议,请参阅this answer for a question about how to implement a spelling checker。
答案 1 :(得分:0)
一个google一个字词txt格式, 检查这个帖子: Where can I download english dictionary database in a text format? 2-扫描打开包含你单词的txt文件, 读第一个字 创建一个函数,其中包含一个字符串(char数组),该字符串从txt中读取单词并将其comapre到字典中的每个单词,直到找到匹配项或文件结尾