2011-12-28 34 views
1

想知道什麼方法是最合適的,也許,如果有人會這麼好心的排序上單詞的列表,如何啓動這樣一個功能:內C - 文本文件

AWord 
DWord 
CWord 
BWord 

要結束了在這樣一個新的文本文件:

AWord 
BWord 
CWord 
DWord 

此刻,我的程序,逐行讀取fgets()每個字線和做一些事情吧,大寫首字母等,一旦所有做到這一點,一個新的文本文件被創建,text.out。

然後我想將它按字母順序排序,因爲所有的單詞只是字母,有些可能以數字結尾。

謝謝,任何幫助表示讚賞!

T.C

+4

看看標準['qsort()'](http://cplusplus.com/reference/clibrary/cstdlib/qsort/)函數。 – 2011-12-28 19:30:26

+0

雖然我沒有單詞數組,但它只是一個包含單詞的文件,每個單詞都被讀入單個數組,然後進行修改,然後輸出。 – PnP 2011-12-28 19:32:40

+4

或者,如果你已經有一個文件,你可以委託給UNIX'sort',它知道排序文件的一些東西,你可能不知道。它的代碼效率並不高,但如果您需要就此提出問題,它會比您自己可以做的更好,更好。 @Oli的解決方案是 - 不要輸出到文件,而是建立一個數組,然後是'qsort()'它。 – Amadan 2011-12-28 19:33:19

回答

1

你說,你不必言的數組,但你讀每一行到一個單獨的字符數組。這是你需要解決的問題。聲明char *lines[MAXLINES],來自輸入文件的每一行數組。將輸入文件中的每一行讀入該數組中。然後,您可以在將其退出之前對該數組進行排序。

這與K & R節5.6和5.11中提出的概念非常相似。