如何用c实现单词拼写检查?

如何用c实现单词拼写检查?,c,dictionary,spell-checking,C,Dictionary,Spell Checking,我需要用c语言创建拼写检查器以进行评估。我设法开始了这项工作——我有一个包含所有词典的文本文件,我编写了如何读取这些文件的代码,如何将所选文件与词典文件进行比较,现在我需要打印到新的文本文件中,在其中找到拼写错误的单词,它们是什么,以及它们的正确版本。最大的问题是,我不知道怎么做。我现在的代码可以说文件之间存在差异。但我不知道如何让strcmp一个字符串一个字一个字地检查是否有问题 字典文件中的所有单词,因此,当然,如果我的程序正在读取其他文件,比较,然后将文件中不存在的所有单词写入新的输出文件

我需要用c语言创建拼写检查器以进行评估。我设法开始了这项工作——我有一个包含所有词典的文本文件,我编写了如何读取这些文件的代码,如何将所选文件与词典文件进行比较,现在我需要打印到新的文本文件中,在其中找到拼写错误的单词,它们是什么,以及它们的正确版本。最大的问题是,我不知道怎么做。我现在的代码可以说文件之间存在差异。但我不知道如何让strcmp一个字符串一个字一个字地检查是否有问题

字典文件中的所有单词,因此,当然,如果我的程序正在读取其他文件,比较,然后将文件中不存在的所有单词写入新的输出文件中,并出现错误,这些输出错误单词也将只是随机单词,甚至不在文本文件中,或者与文本文件连接


我希望我能很好地解释我的问题,有人会告诉我如何解决这个问题。我甚至不需要代码,我只需要知道如何编写程序的其余部分。对不起,对于我的英语来说,它是我的第二语言,所以我仍然会犯语法错误

以下是您可以遵循的一些步骤:

  • 将字典读入内存结构,例如字符串数组,您将按字典顺序对其排序(使用
    strcmp

  • 逐行读取文件,每行重复以下步骤:

    • 初始化带有空格的高亮显示行,其长度与读取的行相同

    • 使用
      strcspn()
      跳过不能作为单词一部分的字符,保存索引
      i

    • 使用
      strspn()
      扫描可以作为单词一部分的字符,保存此数字
      n
    • 如果
      n
      为0,则这是行尾
    • 使用字典中的
      n
      字符在索引
      i
      中查找单词(可能忽略大小写)
    • 如果找不到该单词,请将警告行中的相应字符设置为
      ^
      字符
    • 更新索引
      i+=n
      并迭代
  • 如果在该行中未找到至少一个单词,则输出该行和警告行

研究这些标准功能:

  • strspn()
  • strcspn()
  • qsort()
  • b搜索()

您需要提出一种数据结构,该结构允许您轻松识别螫针,不会对内存造成巨大负担,并能为您提供与引导密切匹配的数据。此任务的一个可能选项是。您需要将字典文件加载到其中,并在读取测试文件时使用它。但是你的问题是离题的,因为事实上,它仍然太宽泛了。你可以发布你的代码吗。看到这一点非常感谢,我设法用dicitonary文件和一个示例文件进行拼写检查:)现在我在删除标点符号方面遇到了问题:/