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