2017-06-03 90 views
0

我正在嘗試從Project Gutenberg文本文件讀取並計算單詞總數。我現在超調,因爲帶撇號的單詞被重複計算。然而,文本文件中的撇號字符與ASCII字符39(即'\'')不匹配,所以我的is_word函數工作不正確。任何關於這個角色實際上是什麼的建議?文本文件撇號問題

注意:當我通過手動替換vim中的撇號時,字計數器工作正常。

鏈接到文本文件:http://www.gutenberg.org/ebooks/1342

+1

請顯示你的代碼。 –

+0

在vim中,IIRC轉到了字符並輸入「g8」(自從我上次使用vim以來很長一段時間)。 – pmg

+0

我懷疑撇號可能表示爲Unicode右單引號U + 2019。對於UTF-8文件,這些文件將顯示爲三個字節0xe2,0x80,0x99。但是,如果您使用了適當的Unicode識別輸入法('getwchar'?),您應該可以查找值0x2019(8217)。 –

回答

0

這不是一個完整的答案,但如果你

#include <wchar.h> 
#include <locale.h> 

然後

setlocale(LC_ALL, "en_US.UTF-8"); 

,然後調用getwchar()getwc(fp)代替getchar/getc,然後檢查值8217以及'\'',你m能夠讓這一切工作。

(這爲我工作。情況因人而異。根據您的操作系統,您可能需要使用比「的en_US.UTF-8」以外的語言環境字符串。)

(如果這樣做的工作,歡迎internationalization這個美好的世界沿着這條道路走下去了,如果你希望你的代碼在任何情況下和所有地區都能正常工作,你還需要注意幾個其他問題。)

+0

*走了這條路,還有其他幾個問題需要注意,如果你希望你的代碼在任何情況下和所有地區都能正常工作。*這是對那天! – chqrlie