我會如何閱讀C中的文件,然後迭代每個字符,以便我可以評估它?因此,例如,我會給輸入文件:5 ≠ 10
,評估爲5不等於10,並打印出false。現在我可以做評估部分,但我不確定如何在C中讀取unicode字符。我提出這個問題,因爲我已經寫了一個更大的詞法分析器,並且我希望它支持unicode,但是我想要在較小規模的項目上嘗試一下,看看它是如何發展的。用C語言讀取一個文件爲utf-8並遍歷每個字符?
回答
UTF-8是Unicode的編碼格式。你真正感興趣的是解析文本並分離出每個字節。然後你需要計算Unicode碼點來確定字符。
最終你需要:
- ,可以區分UTF-8字符邊界解析器。
- 將編碼爲UTF-8的數據轉換爲Unicode代碼點的轉換程序。
- 以及代碼點的參考列表及其語義含義。
不等於符號是Unicode代碼點U + 2260。它以UTF-8編碼爲0xE2 0x89 0xA0。
編輯:你應該使用一個庫來解析UTF-8文本。您應該關注的是找到與您的應用程序相關的代碼點,並在您的應用程序中解釋它們的含義。
寫一個解析器和一個翻譯器等是一個很大的任務嗎? –
我還沒有做到。但是你必須找到多字節字符的字符邊界,然後從多個字節中取出單獨的位(和位組),並將其轉換爲Unicode代碼點。您應該先閱讀UTF-8如何編碼代碼點。 –
嗯,謝謝。我會查看一些規範,以及一些關於unicode的文章......希望我能從那裏進入正確的方向。如果一切都失敗了,我只會使用現有的庫。你的回答似乎足以讓我開始,所以我會接受它,歡呼:) –
- 1. 需要循環遍歷一個文件夾,並將每個文本文件讀入一個字符串
- 2. 讀取UTF8文件並與字符串
- 3. 序言:遍歷一個列表,並創建一個謂語
- 4. 使用python將.txt文件視爲一個大字符串,並遍歷文件中的每個{}
- 5. 如何遍歷一個字符串並檢查每個字符的字節值?
- 6. 如何遍歷整個字符串並一次顯示一個字符C++
- 7. 如何遍歷一個字符串並找到某個字符?
- 8. 遍歷字符串併合並每個循環中的前幾個字符
- 9. 遞歸遍歷每個字符組合
- 10. 如何讀取所有IP地址在一個文本文件,並遍歷每個IP地址只有一次
- 11. 如何遍歷Python中的文件中的每2個字符
- 12. C++遍歷一個向量並刪除匹配的字符串
- 13. 遍歷一個使用每個
- 14. 遍歷XSLT字符串參數,併爲每個參數做一些事情
- 15. 如何遍歷列表併爲每個條目返回一些字符串?
- 16. 從文本文件中讀取數據,並使用C++語言
- 17. 從文件中讀取字符。 C語言
- 18. C語言,從外部文件中讀取新行字符
- 19. 遍歷(字符* C,...)
- 20. 每次遍歷一個字符串&提取子字符串的指定索引
- 21. 一次讀取一個字符文件
- 22. C#遍歷一個集合並將每個對象分配給一個變量
- 23. 遍歷CSV文件並獲取指定頭文件的每個值?
- 24. 從文件中讀取字符並寫入另一個文件
- 25. 將多個字符串作爲一個字符串讀取? C++
- 26. 循環遍歷一個PDF文件的文件夾並向每個文件夾追加一個PDF
- 27. bash從文件中的每個字符串中讀取一個字符
- 28. 讀出,並在文件中使用Java語言編寫逐個字符
- 29. 遍歷C字符串:得到一個字符串的最後一個單詞
- 30. PHP讀取並執行一個文件的內容爲一個字符串
你在使用哪個平臺? –
'≠'字符是三個字節:E2 89 A0。 「10」是兩個字節:31 30.解析它們有什麼區別? – Michas
@Michas一個有3個字節,另一個有2個字節?我不知道 –