我正在寻找一种最有效的方式来阅读文本文件中给我的一系列单词。
我写的程序基本上是拼字游戏。它将生成7个随机字母(已经完成)然后用户将需要输入任意数量的这些字母中的单词(如拼字游戏),程序将对该单词进行评分(也已完成)。
我现在面临的问题是如何阅读。我们给出了一个80字的文件,就像这个项目的通用“字典”。我正在考虑使用fopen()
函数或手动输入单词(这会很糟糕......)。我正面临着另一个如何存储单词的问题。我在考虑一个2d数组,其中每列或每行都是一个单词。最多10,000个单词,长度不超过6个字母。
关于如何做到这一点的任何提示都会很棒。
答案 0 :(得分:3)
将单词读入动态分配的字符串数组中。
fopen()
)。fgets()
)。将所有内容设为单个案例(全部为大写,或全部为小写; <ctype.h>
)。<string.h>
; strspn()
或strcspn()
或许)。strdup()
如果可用;否则请自行编写。)malloc()
,realloc()
)中。fclose()
)。qsort()
)。bsearch()
)。如果你没有被教过指针,更不用说指针数组,那么你仍然可以逐字地使用步骤1-3和6-8。您需要预先分配一个2D字符数组,10,000 x 7(因为最大字长为6),并记录正在使用的字符数(一个简单的计数器)。确保所有字符串都不超过6个字符;确保总共不超过10,000个单词。
qsort()
和bsearch()
所需的比较功能在这种情况下略有不同。
您可以放弃二分搜索的效率并使用简单的线性搜索。