c語言怎麼確定是哪個漢字

2025-03-17 13:25:04 字數 2416 閱讀 5534

1樓:網友

ascii碼和漢字碼2008-10-08 14:28 國家標準漢字字符集gb2312-80共收集了共7445個漢字和圖形符號,其中漢字6763個,分為二級,一級漢字 3755個,二級漢字3008個。漢字圖形符號根據其位置將其分為94個「區」,每個區包含94個漢字字元,每個漢字字元又稱為乙個「位」。

區的序號和位的序號都是從01到94,ucdos軟體中的檔案hzk16和檔案asc16分別為16×16的國標漢字點陣檔案和8×16的ascii碼點陣檔案,以二進位格式儲存。在檔案 hzk16中,按漢字區位碼從小到大依次存有國標區位碼錶中的所有漢字,每個漢字佔用32個位元組,每個區為94個漢字。消差在檔案asc16中按ascii碼從小到大依次存有8×16的ascii碼點陣,每個ascii碼佔用16個位元組信橋段。

在pc機的滑譽文字檔案中,漢字是以機內碼的形式儲存的,每個漢字佔用兩個位元組:第乙個位元組為區碼,為了與ascii碼區別,範圍從十六進位的0a1h開始(小於80h的為ascii碼字元),對應區位碼中區碼的第一區;第二個位元組為位碼,範圍也是從0a1h開始,對應某區中的第乙個位碼。這樣,將漢字機內碼減去0a0a0h就得該漢字的區位碼。

例如漢字「房」的機內碼為十六進位的「b7bf」,其中「b7」表示區碼,「bf」表示位碼。所以「房」的區位碼為0b7bfh- 0a0a0h=171fh。將區碼和位碼分別轉換為十進位得漢字「房」的區位碼為「2331」,即「房」的點陣位於第23區的第31個字的位置,相當於在檔案hzk16中的位置為第32×[(23-1) ×94+(31-1)]=67136b以後的32個位元組為「房」的顯示點陣。

ascii碼的顯示與漢字的顯示原理相同,在asc16檔案中不存在機內碼的問題,其顯示點陣直接按ascii碼從小到大依次排列,不過每個ascii碼在文字中只佔1個位元組並且小於80h,每個ascii碼為8x16點陣,即在ascii16檔案中,每個ascii碼的點陣也只佔16個位元組。

2樓:

要預先知道漢字用的是什麼編碼,gb2312-1980, big5, hz, gb18030, unicode 大端,unicode 小端, utf-8,等等。然後根據 編碼範圍 確定它是不是漢字。

gb,big5,hz 允許 英文ascii碼和漢字碼 混合在一篇文章裡(乙個殲逗侍資料檔案裡),例如 a, 它可能是 英文ascii碼(半形),也可能是中文 a(全形碼),空格,可能是 英氏吵文ascii碼 (半形),也可能是中文(全形)空格。

知道了漢字的編碼方法,知道了漢字的碼值,就可以呼叫 該編碼的font庫,由碼值,得字的形狀(雕刻痕跡形狀),通過螢幕顯示或印表機打出 刻痕。

如果沒有該編碼的font庫,但有別的漢字編碼的font庫。例如,編碼是gb2312-1980,只有 unicode gb ttf font庫, 那就要 把 碼值 通過 編碼 對映到指虧unicode 碼值,再調 ttf font 顯示或列印 刻痕。

例如:天 gb碼值 0xccec, unicode 碼值 0x5929

空格符號 gb碼值 0xa1a1, unicode 碼值 0x3000

c語言怎樣判斷輸入的漢字是否是正確的

3樓:網友

1、這是跟漢字的儲存方式有關,西文字元用ascii碼的話,乙個位元組可以表示乙個字元,而漢字用的是雙位元組表示乙個漢字。那麼,為了在機器內部區分ascii碼和漢字機內碼,就規定漢字的兩個位元組的最高為都為1。

2、例如:漢字「啊」的漢字機內碼為b0a1h表示成雙位元組是這樣的10110000 10100001本程式用的就是判斷最高位的方法。

int is_zh_ch(char p)

return -1;}

4樓:網友

有幾個錯誤。

#include

#define p "蘋果" //這裡應該是#definemain()

5樓:網友

fefine p "蘋果" 有錯誤。

換成如下格式 試試。

#define p "蘋果"

int main()

c語言中如何使用漢字?

6樓:天雲小店

在c語言中,可以通過將漢字作為字串輸入。

由於乙個漢字佔2個位元組,所以對漢字的操作,只能以2個位元組作為操作單位。

下面通過具體例項來說明漢字在c語言中的使用:

char s 首都北京"; 將漢字字元賦值給字元陣列。

char s2[20]; 肢搏 //定義字元陣列,存放使用者輸入的漢字。

scanf("%s", s2); 接收使用者輸入的漢字字元。

printf("%d", sizeof(s));歷液祥計算字元陣列s所佔的記憶體單元,輸出9(最後乙個位元組是結束字元'\0')

printf("%s", s[2]);輸出埋信「都北京」(首字佔2個位元組)

printf("%s", s2); 輸出使用者輸入的漢字。

小米手機怎麼確定是移動版還是聯通版

請檢視手機背面型號 iphone 5s a1518版 此版為為中國移動定製版,支援移動2g 3g和移動4g。鎖定了聯通3g和4g。iphone 5s a1528版 此版本為中國聯通定製版,支援聯通2g 3g 移動2g。升級15.7版後可以開啟4g選項,但是不能進入移動4g網路。鎖定了移動3g。適合於...

怎麼樣確定是手機壞了還是電池壞了

用萬用表測電芯不能低於標的電壓不然就充不進去,感覺手機壞,方法打電池充滿再安手機上,充電寶充先拿下電池再用開機就亮了,好多是電池饋電了充不了,手機好的 接上充電bai器,能用就是du 電池壞了,不能用則是手機壞了zhi。如果接上充電dao器後電池很快內發燙可能是電容池短路,這種很少見。如果沒充電器,...

怎麼才確定自己得了闌尾炎,怎樣確定是否是闌尾炎

闌尾炎確診標準 症狀 轉移性右下腹痛 查體 右下腹麥氏點 臍與髂前上棘連線的中外三分之一 附近壓痛 輔助檢查 血常規 白細胞計數及分數增高 上述基本可以確診了 女性需要與宮外孕做鑑別 再就是給你一個簡單點的辦法,跳一跳,重落地,右下腹疼痛加重一般就是闌尾炎了 到醫院檢查,當醫生告訴你得了闌尾炎,那時...