✔ 最佳答案
先答你第一部份。
第一部份,使用malloc開設一個超大的2 dimension array,由於本人沒有 c complier做testing,所以不擔保以下的code會work,但我相信方向是正確的,就算有bug都係少改就ok ,方法如下:
// ******** define the variables
long i;
long numOfVocab = 100000; // define total words in dictionary
int lengthOfEachVocab = 50; // define the length of each words
char **dictionary;
// ******** end of define the variables
// ******** create the huge array
**dictionary = (char **) malloc( numOfVocab * sizeof(char *) );
for(i = 0; i < numOfVocab - 1; i++)
dictionary[i] = (char *) malloc( lengthOfEachVocab * sizeof(char) );
// ******** end of create the huge array
// ******** assign the value into the dictionary
dictionary[0] = "A";
dictionary[1] = "AB";
dictionary[2] = "ABC";
......
// ******** end of Assign the value into the dictionary
至於第二部份,就要逐個逐個字去對,如你所說,要用strcmp去做。如果想快一點,可以設定字典中的字母索引:
例如:
dictionary[0] 是 A 的開始;
dictionary[847]是B的開始;
如此類推,當在字典中尋搜時,就可從這個索引開始,不必每次都要從dictionary[0] 開始。