如何用c实现单词拼写检查?
我需要用c语言创建拼写检查器以进行评估。我设法开始了这项工作——我有一个包含所有词典的文本文件,我编写了如何读取这些文件的代码,如何将所选文件与词典文件进行比较,现在我需要打印到新的文本文件中,在其中找到拼写错误的单词,它们是什么,以及它们的正确版本。最大的问题是,我不知道怎么做。我现在的代码可以说文件之间存在差异。但我不知道如何让strcmp一个字符串一个字一个字地检查是否有问题 字典文件中的所有单词,因此,当然,如果我的程序正在读取其他文件,比较,然后将文件中不存在的所有单词写入新的输出文件中,并出现错误,这些输出错误单词也将只是随机单词,甚至不在文本文件中,或者与文本文件连接如何用c实现单词拼写检查?,c,dictionary,spell-checking,C,Dictionary,Spell Checking,我需要用c语言创建拼写检查器以进行评估。我设法开始了这项工作——我有一个包含所有词典的文本文件,我编写了如何读取这些文件的代码,如何将所选文件与词典文件进行比较,现在我需要打印到新的文本文件中,在其中找到拼写错误的单词,它们是什么,以及它们的正确版本。最大的问题是,我不知道怎么做。我现在的代码可以说文件之间存在差异。但我不知道如何让strcmp一个字符串一个字一个字地检查是否有问题 字典文件中的所有单词,因此,当然,如果我的程序正在读取其他文件,比较,然后将文件中不存在的所有单词写入新的输出文件
我希望我能很好地解释我的问题,有人会告诉我如何解决这个问题。我甚至不需要代码,我只需要知道如何编写程序的其余部分。对不起,对于我的英语来说,它是我的第二语言,所以我仍然会犯语法错误 以下是您可以遵循的一些步骤:
- 将字典读入内存结构,例如字符串数组,您将按字典顺序对其排序(使用
)strcmp
- 逐行读取文件,每行重复以下步骤:
- 初始化带有空格的高亮显示行,其长度与读取的行相同
- 使用
跳过不能作为单词一部分的字符,保存索引strcspn()
i
- 使用
扫描可以作为单词一部分的字符,保存此数字strspn()
n
- 如果
为0,则这是行尾n
- 使用字典中的
字符在索引n
中查找单词(可能忽略大小写)i
- 如果找不到该单词,请将警告行中的相应字符设置为
字符^
- 更新索引
并迭代i+=n
- 如果在该行中未找到至少一个单词,则输出该行和警告行
strspn()
strcspn()
qsort()
b搜索()