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